使用jQuery按内容选择元素

fjaof16o  于 2022-12-18  发布在  jQuery
关注(0)|答案(2)|浏览(167)

我目前正在构建一个应用程序,它需要通过元素的内容来标识元素,通常我会使用元素的ID来标识它,但在本例中这是不可能的,因为内容是用户生成的。
我有一个PHP脚本,输出一些内容,其中一部分是用户输入的。例如:

<!-- elementid1 -->
This is user generated text. Lorem ipsum...

我需要能够识别这个元素并在点击时触发一个事件,一旦点击发生,我应该能够很容易地从内容中解析ID(elementid1)。
然而,这些元素并不总是DIV,有时候它们是H1到H6等等。我该如何着手检测这些事件

或者,我可以循环遍历所有元素(这部分我不知道怎么做),用ID设置一个自定义属性,然后为属性等于某个值的元素创建jQuery事件。如果有人知道如何循环遍历每个DOM元素(最好只循环遍历子元素,因为父元素也有子元素的内容...),那么这也可以。

注:

通常我会使用contains()选择器,但是由于这个ID是注解而不是文本,所以它似乎不起作用。

eanckbw9

eanckbw91#

试试这个...

$('*').filter(function() {
   return $(this).html().match('<!-- elementid1 -->');
});

jsFiddle .

5hcedyr0

5hcedyr02#

您可以创建自定义选择器,它将搜索具有nodeType = COMMENT_NODE(8)和特定内容的子节点...但这需要很长时间...
jsFiddle

相关问题