我有一个包含html元素的字符串,现在我需要选择一些元素并从字符串中删除它们。 在JQuery中,我尝试了以下内容:
html_string = "<ul><li data-delete>A<li><li>B</li></ul>";
html_clean_string = $(html_string).remove('[data-delete]').html();
这就是我的预期:
"<ul><li>B</li></ul>"
但我得到了相同的原始字符串。那么如何使用CSS选择器从字符串中删除html元素呢?
答案 0 :(得分:4)
你可以这样做:
var html_string = "<ul><li data-delete>A</li><li>B</li></ul>";
var elems = $(html_string);
elems.find('[data-delete]').remove();
var html_clean_string = elems[0].outerHTML;
你有几个问题:
.remove()
仅对jQuery对象中的元素进行操作,而不是对子对象进行操作,因此在删除它们之前必须.find()
相应的子元素。
由于您也需要主机顶级HTML,因此您需要.outerHTML
。
你的html_string中有错误。
工作jsFiddle:http://jsfiddle.net/jfriend00/x8ra6efz/
您还可以使用更多链接来保存一个小jQuery:
var html_string = "<ul><li data-delete>A</li><li>B</li></ul>";
var html_clean_string = $(html_string).find('[data-delete]').remove().end()[0].outerHTML;
工作jsFiddle:http://jsfiddle.net/jfriend00/wmtascxf/