Jquery:无论如何都要确定元素的唯一性?

时间:2016-05-06 04:38:18

标签: javascript jquery google-chrome-extension

让我解释一下

我有一个包含弹出窗口元素的DOM。 HTML看起来像:

<div class='editor'></div>
<div class='editor'></div>

我正在使用Chrome扩展程序,必须按类editor查找所有元素,如果找不到某些文本,请添加它。

到目前为止,它正在发挥作用。 DIV包含textarea。实际发生的事情是,如果一个人删除文本,它会再次添加。它正在发生,因为我正在使用计时器嗅探是否弹出新窗口。

无论如何我可以知道DIV中已经添加了某个文本吗?元素是否有一些内部ID?

PS:在我写这个问题的时候,我脑海中浮现出一个问题,就是我通过所有元素都有editor类,并将唯一的ID指定为editor1,editor2..

我想知道还有其他方法吗?

由于

更新

使用带有类名editor的jQuery sniff元素的Chrome扩展程序,如果找到或找到它们visible it inserts text, say Hello World . If Hello World already there, it does not end. So far it's working fine. Issue is what if user manually removed **Hello World**, the code which is running under setinterval`块再次添加它。我不希望第二次添加,因为代码不应该在已经添加的元素中添加 Hello World

2 个答案:

答案 0 :(得分:1)

当用户从div中删除文本(您的意思是textarea?)时,您可以使用自定义数据属性对其进行标记。

element.data('skip', true);

并在您的计时器中执行检查以跳过具有此数据属性的元素。

if (!element.data('skip'))
{
    // do your thing
}

此处有更多信息:https://api.jquery.com/data/

答案 1 :(得分:1)

似乎没有任何浏览器内置该功能。您显然可以自己构建它使用我不想复制任何答案,所以我会留下这个链接: Unique identifier for HTML elements