例如,我有以下HTML结构:
<div class="container">
<div class="field-container">...</div>
<div class="field-container">...</div>
<div class="field-container">...</div>
<div class="field-container-with-details">
<div class="details">...</div>
<div class="details">...</div>
<div class="details">...</div>
<div class="details-to-skip">...</div>
<div class="details-to-skip">...</div>
</div>
</div>
我需要找到课程inputs
中除.container
以外的inputs
的所有.details-to-skip
。
怎么做?
答案 0 :(得分:3)
所以你可以not-selector
$('.container input:not(.details-to-skip input)')
或.not()
$('.container input').not('.details-to-skip input')
$('.container input:not(.details-to-skip input)').after('<span>before</span>');
$('.container input:not(.details-to-skip input)').val('selected')
.field-container-with-details > div {
padding: 5px;
}
.field-container-with-details > .details {
border: 1px solid green;
margin-bottom: 3px;
}
.field-container-with-details > .details-to-skip {
border: 1px solid red;
margin-bottom: 3px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="container">
<div class="field-container"></div>
<div class="field-container">...</div>
<div class="field-container">...</div>
<div class="field-container-with-details">
<div class="details">
<input />
</div>
<div class="details">
<input />
</div>
<div class="details">
<input />
</div>
<div class="details-to-skip">
<input />
</div>
<div class="details-to-skip">
<div>
<input />
</div>
</div>
</div>
</div>
答案 1 :(得分:1)
您可以使用filter()
。试试这个:
var $inputs = $('.container input').filter(function() {
return $(this).closest('.details-to-skip').length == 0;
});
$inputs
变量现在将包含这些div中未包含的所有输入的集合。
答案 2 :(得分:1)
试试这个:
$('.container div:not(.details-to-skip) > input')
答案 3 :(得分:1)
不幸的是,有些答案错误地选择了父母有.details-to-skip
的输入。
他们倾向于重新包含输入,因为它们也是div
class="field-container-with-details"
过滤器需要更具体:
JSFiddle:http://jsfiddle.net/TrueBlueAussie/z8cqx8kq/1/
e.g。
$('.container div:not(.details-to-skip) > input');
注意:如果输入是div
的直接子项,则此功能将起作用。