jQuery可以用作实时html解析器/节点替换实用程序吗?

时间:2011-01-30 15:57:01

标签: jquery

我的每个帖子都有一个针对其进行优化的不同关键字。我需要一个例程来获取帖子内容并将我的关键字的第一个实例包装在强标签中。我不想装饰关键字,如果它的元素的属性集合(title,src,alt等)的(1)部分。如果它在h1-6标题标签中,我不想装饰它。

我知道dom遍历和Html解析/替换有很多工具。 jQuery可以这样做吗?

有人可以提供使用jQuery作为html解析器的任何示例吗?

1 个答案:

答案 0 :(得分:0)

这可能就是你要找的东西。你不应该直接解析HTML。最好遍历DOM并查找文本节点。

var word = "foo";

var nodes = $("postSelector").find("*"); // get all elements

for (var i = 0; i < nodes.length; i++) {
    // get the node
    var node = nodes.eq(i);
    // if the tagName is a h1-h6 then continue
    if (/h\d/.test(node[0].tagName)) continue;
    if (node.text().indexOf(word) > -1) {
         // handle the textual replacement.
         var text = node.text();
         text.replace(word, "<strong>" + word + "</strong>");
         node.html(text);
    }
}

如果您使用

之类的单词嵌套html,这将导致问题

<p> fo <span> o </span> </p>

但这是一个完全不同的问题。