【发布时间】:2011-02-01 13:30:31
【问题描述】:
能否使用 jquery 函数轻松将字符串转换为树、操作节点以及转换回字符串?
原始问题:选择器和 .html() 等 jquery 函数如何用于字符串操作?
更新:
- 我在以下位置找到了相关信息 这个问题parse html string with jquery
- Ben Alman 有一个例子 replaceText 作为一个 jquery 插件 它走树并替换 文字
- 来自 question and answer 的其他见解,了解如何将 jquery 对象转换为字符串
首先jquery可以用于以下吗? (我稍后会验证)
var b = $('<a href="#">bacon</a>').html();
b === 'bacon',答案是肯定的。
如何使用jQuery进行字符串操作:(修改自a sample highlighting answer)
var key = 'bacon';
var str = '<a href="#">bacon</a><a href="#">tastes great</a>';
$(str).contents().each(function() {
var node = this;
if (node.nodeType == 3) {
var text = node.nodeValue;
text = text.replace(new RegExp(key, "g"),
'<span class="Someclass">'+key+'</span>'
));
//replace existing node value with text
});
// convert tree into string
所需的输出是带有修改元素的字符串:
str = '<a href="#"><span class="Someclass">bacon</span</a><a href="#">tastes great</a>';
【问题讨论】:
-
我对这个问题投了一个罕见的反对票,我想解释一下原因。对于您的第一个示例,您问“does b === 'bacon'”。您已经输入了代码 - 您没有尝试过吗?我认为,一个很好的问题表明您已经完成了一些工作并解释了迄今为止的结果。这样,当有人通过搜索找到它时,他们甚至可以从问题中学到一些东西,并从答案中学到更多。我没有冒犯的意思,我希望你能明白我的意思,并更加坚定地保持 SO 上的内容真的很棒。
-
innerHTML是浏览器功能,不是 jQuery 功能,它是字符串,不是函数。 -
清理了问题,正在使用 jquery 的 html 方法修改我的浏览器 html
-
投反对票理解内森,当然如果他们在这里提出更好的问题。我会继续编辑问题。
标签: javascript jquery html string