这实际上不应该太难,但我不能让它发挥作用。所以这是我想要实现的简化版本。是的,我确实需要每个构造。
var test = "<div><ul><li>liste 1</li><li>liste 1</li></ul></div>";
$("li", test).each(function() {
$(this).addClass("test")
})
console.log(test);
结果:
<div><ul><li>liste 1</li><li>liste 1</li></ul></div>
Anticipated结果:
<div><ul><li class="test">liste 1</li><li class="test">liste 1</li></ul></div>
任何想法??
答案 0 :(得分:1)
你不能在字符串上使用context方法,只能在集合上使用find()
$(test).find("li").addClass("test");
如果你没有真正使用元素,而是字符串,你仍然可以做类似的事情:
$(test).find("li").addClass("test").end().get(0).outerHTML;
并获取更改后的字符串
答案 1 :(得分:1)
test
正在修改,但未更新。您可以使用以下内容进行更新:
var test = "<div><ul><li>liste 1</li><li>liste 1</li></ul></div>";
$("li", test).each(function() {
$(this).addClass("test");
test = $("<div />").append($(this).parent().parent()).html();
})
console.log(test);
答案 2 :(得分:1)
您必须从字符串创建一个jQuery包装集,对其进行操作,并使用它来输出结果:var $test = $(test);
和console.log($test.html())
。但请参阅上面的KevinB的评论:html()
调用不保证返回添加了类的字符串。
答案 3 :(得分:1)
我要回答的问题:
var test = $("<div><ul><li>liste 1</li><li>liste 2</li></ul></div>");
$(test).find("li").each(function() {
$(this).addClass("test")
})
test = test.html()