如何将第二个元素id注入到网站元素中

How to inject second element ids to the website elements

本文关键字:元素 网站 注入 id 第二个      更新时间:2023-09-26

使用JavaScript,我希望通过添加id属性来标记网页中的所有元素(或者至少是链接和按钮),例如自定义id="12345"。

我在这里关心的是如何为每个元素保持这些ID的唯一性和静态性,特别是当将来(开发人员或业务部门更改某些元素)页面可能会有更多或更少的元素时,而仅仅遍历文档元素来分配ID可能会更改元素和ID的顺序,而静态ID是不可取的。

我想再次做的是,即使页面层次结构多次更改,也要为相同的元素使用相同的ID。。

标签页:

<!DOCTYPE html>
<html>
<body>
<h1 custom-id = "1">My First Heading</h1>
<p custom-id = "2">My first paragraph.</p>
</body>
</html>

元素发生变化时出错:

<!DOCTYPE html>
<html>
<body>
<p custom-id = "1">My first paragraph.</p>
</body>
</html>

正确的应该是:

<!DOCTYPE html>
<html>
<body>
<p custom-id = "2">My first paragraph.</p>
</body>
</html>

脚本如下:

var all = document.getElementsByTagName("*");
for (var i=0, max=all.length; i < max; i++) {
    all[i].setAttribute("data-custom-id", i);
}    

谢谢大家!Hedi

我认为您正在寻找类似于.is()选择器(jQuery)的东西

$('#theid').is($('p')); ==> true

通过这种方式,您可以在条件中使用它,将适当的数据id添加到正确的元素标记中,正如您在上面所暗示的那样。

非jQuery解决方案(来自http://youmightnotneedjquery.com/)

var matches = function(el, selector) {
  return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);
};
matches(el, '.my-class');

或。。

el === otherEl

希望能有所帮助。

我想我找到了:

现在,我想换一种方式。生成一个唯一的密钥来从元素本身识别元素,并将其提供给TMS,我认为这个应该有效。。

示例:

插件应始终在分析规则之前运行。

步骤1:循环和读取元素:

<h1>My First Heading</h1>

步骤2:转换为字符串:

"<h1>My First Heading</h1>"

步骤3:将字符串转换为Key!!(例如使用cryptoJS):

"dhked543e5de"

然后将其添加到元素中:

<h1 custom-elm-key = "dhked543e5de">My First Heading</h1>