使用JQuery选择Element By Content

时间:2011-02-22 06:25:27

标签: javascript jquery javascript-events

我目前正在构建一个需要通过其内容识别元素的应用程序。通常我会使用元素的ID来识别它,但在这种情况下,由于内容是用户生成的,所以不可能。

我有一个PHP脚本输出一些内容,其中一部分是用户输入的。例如:

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

我需要能够识别此元素并在点击时触发事件。一旦点击发生,我应该能够轻松地从内容中解析ID(elementid1)。

但是,这些元素并不总是DIV。有时它们是H1到H6等。我将如何检测这些事件

OR

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

注意:

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

2 个答案:

答案 0 :(得分:8)

试试这个......

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

jsFiddle

答案 1 :(得分:2)

您可以创建自定义选择器,它将使用nodeType = COMMENT_NODE(8)和特定内容搜索子项...但这是很长时间......

jsFiddle