我的每个帖子都有一个针对它们进行优化的不同关键字。我需要一个例程,它将接受post内容,并将我的关键字的第一个实例包装在强标记中。如果关键字(1)是元素属性集合(title、src、alt等)的一部分,我就不想修饰它。我不想装饰它,如果它在h1-6的标题标签中。
我知道有很多用于dom遍历和Html解析/替换的工具。jQuery能做到这一点吗?
谁能给出一些使用jQuery作为html解析器的例子?
发布于 2011-01-31 08:26:18
这可能就是你要找的。你不应该直接解析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>
然而,这是一个完全不同的问题。
https://stackoverflow.com/questions/4843825
复制相似问题