JQuery:排除子元素中的一个元素

时间:2014-01-27 22:45:41

标签: javascript jquery html css

我正在尝试使用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');

4 个答案:

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