我正在尝试使用jquery获取所有下一个html代码并使用标识fiscal-address-info
排除DIV。我开始使用not
方法,但没有成功。
这是原始代码段。
<div id="fiscal-info" class="content-fields">
<h2>Datos Fiscales</h2>
<div class="row">...</div>
<div class="row">...</div>
<div class="row">...</div>
<div id="fiscal-address-info">Foo Bar</div>
<div class="row">...</div>
<footer>...</footer>
</div>
我想在jquery结果中得到的是:
<div id="fiscal-info" class="content-fields">
<h2>Datos Fiscales</h2>
<div class="row">...</div>
<div class="row">...</div>
<div class="row">...</div>
<div class="row">...</div>
<footer>...</footer>
</div>
这是我尝试过的:
$('#fiscal-info').not('#fiscal-address-info');
答案 0 :(得分:1)
你需要得到你的第一个元素的孩子,试试这个:
$('#fiscal-info').children().not('#fiscal-address-info');
如果你也想要父母,你可以试试这个
var myHtml = $('#fiscal-info').clone(false)
myHtml.children.remove('#fiscal-address-info');
答案 1 :(得分:1)
如果要重现DOM树的那个分支,排除不需要的孩子,请使用:
var $copy = $('#fiscal-info').clone(); // deep copy
$copy.find('#fiscal-address-info').remove(); // remove child
然后,您可以随意执行$copy
。
但请注意,将其转换回HTML以便随后将其重新插入DOM几乎永远不会做正确的事情。 HTML只是DOM结构传输的一种机制 - DOM结构的后续操作应该使用DOM方法完成。
答案 2 :(得分:0)
获取#fiscal-info
及其子级,不包括ID为#fiscal-address-info
的孩子:
var collection = $("#fiscal-info").children.not("#fiscal-address-info").add("#fiscal-info");
答案 3 :(得分:0)
尝试一下
$('#fiscal-info').children(':not(#fiscal-address-info)');