我正在尝试从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');
答案 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();
答案 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);