删除javascript字符串中的元素

时间:2015-07-08 00:32:31

标签: javascript jquery css

我有一个包含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元素呢?

1 个答案:

答案 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;

你有几个问题:

  1. .remove()仅对jQuery对象中的元素进行操作,而不是对子对象进行操作,因此在删除它们之前必须.find()相应的子元素。

  2. 由于您也需要主机顶级HTML,因此您需要.outerHTML

  3. 你的html_string中有错误。

  4. 工作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/