删除从html()方法存储的元素

时间:2013-04-24 21:51:15

标签: jquery

我正在尝试从html()方法中存储在变量中的代码块中删除一些元素。实施例。

<div id="block">
  <div id="temp"><span>dsgdgdgdgdg</span></div>
  <ul>
    <li>dsfdsfsdfds</li>
    <li>dsfdsfsdfds</li>
    <li>dsfdsfsdfds</li>
  </ul>

</div>

JS CODE

    var html = $('#block').html();
    html.remove('#temp');

3 个答案:

答案 0 :(得分:2)

你应该把它转过来:

$('#block #temp').remove();

这将删除id = "temp"的所有元素,该元素是id = "block"

元素的后代

您正在尝试搜索HTML,但html只是一个字符串。

答案 1 :(得分:1)

一旦你有了一个字符串,就不能再调用jQuery方法了。你必须从字符串中重新创建jQuery对象,但是你可以只创建一个jQuery对象的副本,删除div,然后获取html字符串:

var $block = $('#block').clone();
$('#temp', $block).remove();
var html = $block.html();

JSFiddle

答案 2 :(得分:0)

您的代码中有两个问题需要克服。

首先,remove(selector)是一种从集合中删除与选择器匹配的项目的方法,您不想这样做,您想要删除子元素。

第二个是你的html变量是一个包含html的字符串,而不是一个jQuery对象。

这是一种克服两者的方法......

var html = $('#block');

// Some other code...

$('#temp', html).remove();

更新...上面的示例从原始块中删除元素,以对需要将其带回jQuery对象的字符串进行操作 - 这是一个示例......

var html = $('#block').html();

var test = $('<div />').html(html); // get string into a jQuery object
$('#temp', test).remove(); // remove the temp element
html = test.html(); // get the update html string

alert(html);