代码之家  ›  专栏  ›  技术社区  ›  Petah

jquery,从字符串中移除元素

  •  18
  • Petah  · 技术社区  · 14 年前

    我有一根绳子:

    var s = '<h1>heading</h1><p>para</p>';
    

    我想移除 h1 元素。 我尝试过:

    $(s).remove('h1');
    

    但S仍然包含 H1 要素 我也尝试过:

    s = $(s).remove('h1');
    

    $('h1', s).remove();
    

    $('h1', $(s)).remove();
    

    有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  29
  •   user113716    14 年前

    更新 我看到你刚刚改变了这个问题。现在的解决方案是:

    var s = '<h1>heading</h1><p>para</p>';
    
    var $s = $(s).not('h1');
    
    $('body').append($s);​
    

    试一试: http://jsfiddle.net/q9crX/19/

    因为jquery对象中现在有多个“顶级”元素,所以可以使用 .not() (基本上与 .filter() )删除 h1 .

    这和做一样 $(s).filter(':not(h1)');


    原始答案

    $(s).find('h1').remove();
    

    因此,如果要将结果附加到 body 你可以这样做:

    var s = '<div><h1>heading</h1><p>para</p></div>';
    
    var $s = $(s).find('h1').remove().end();
    
    $('body').append($s);​
    

    试一试: http://jsfiddle.net/q9crX/