首页 > 解决方案 > DOM 中缺少 HTML 分配的“id”

问题描述

在 Moodle (v. 3.5.7) Atto 编辑器(同时使用 Chrome 和 Firefox)中,我一直在尝试为特定的行类“span9”分配一个 ID。我的最终目标是为其分配一个唯一的 ID 并通过 jquery 引用该元素,以便在其中附加另一个元素。

问题是,一旦我添加了一个 ID (id="checklist01") 并单击保存,该 ID 根本不会出现在 DOM 中,并且似乎不存在。然而,当我重新进入 atto 编辑器时,瞧,它就在那里。所以它没有被完全删除......只是没有以某种方式表达?

我在下面链接了 2 个屏幕截图,显示 (1) 编辑器视图,突出显示元素和分配的 ID,以及 (2) 保存更改后的 DOM 屏幕截图,突出显示同一区域,没有分配的 ID。

DOM 中缺少 ID 的屏幕截图

引导版本。4

到目前为止,我已经尝试在 atto 编辑器中切换 id 的位置(第一类与第二类之后);试图在 id 前面添加一个“span”(出于某种原因,我很绝望);真的只是到处寻找遇到类似情况的人。

我不确定 html 将提供多少帮助,但这里是:

<div class="row-fluid colored">
  <div class="iconbox span3">
    h4>Your Completion Status (%)</h4>
  </div>

  <div id="checklist01" class="span9">
  </div>

</div>

标签: htmldommoodle

解决方案


@Spaghett_86

感谢分享更多细节。我找到了删除 id 属性的原因。

id 属性被删除,因为“清单”活动使用了 Moodle 的安全 HTML 功能。如果您想访问描述 HTML 的 id 属性,请按照以下步骤操作。

  1. 转到 mod\checklist\locallib.php 文件。
  2. 然后搜索 formatted_intro() 函数(在第 880 行附近)。
  3. 在那个函数中,他们使用 Moodle 的 format_text() 函数返回描述文本。
  4. 在那个函数中,他们使用了 3 个参数。
    • string $text 要格式化的文本。
    • int $format 要使用的文本格式的标识符
    • 对象/数组 $options 文本格式选项

代替

$opts = array('trusted' => $CFG->enabletrusttext);

$opts = array('trusted' => $CFG->enabletrusttext,'allowid'=>true);

然后保存文件并检查。按照上述步骤,您可以使用 id 属性。

希望我的回答对你有所帮助。

谢谢你。


推荐阅读