我有這個標記:如何選擇包含至少一個[attr = name1]元素的所有元素,該元素又包含至少一個[attr = name2]元素?
<div class="click">click</div>
<div id="wrapper">
<div class="container">
<div data-attrfirst='type1'><span data-attrsecond='type2'>must be red</span></div>
</div>
</div>
我想選擇所有.container
s表示:
1是#wrapper
內;
2.含有data-attrfirst='type1'
元素,它依次包含data-attrsecond='type2'
元素。
我的要求:
1.我的'#wrapper','type1','type2'值必須保存爲變量。
2.我必須在一些標籤內找到這個(在這種情況下,我選擇body
)。
我想這(星號可以被去除,沒有區別):
<script>
$(document).ready(function() {
$('.click').click(function() {
var myid = '#wrapper';
var attrfirst = 'type1';
var attrsecond = 'type2';
var elem = $('*[data-attrfirst=' + attrfirst + ']').has('*[data-attrsecond=' + attrsecond + ']');
$('body').find(myid + ' .container').each(function (i) {
if ($(this).has('*[data-attrfirst=' + attrfirst + '] *[data-attrsecond=' + attrsecond + ']')) {
$(this).css('color', 'red')
}
});
$('body').find(myid + ' .container').each(function (i) {
if ($(this).has(elem)) {
$(this).css('color', 'red')
}
});
$('body').find(myid + ' .container').filter(function (i) {
return $('*[data-attrfirst=' + attrfirst + '] *[data-attrsecond=' + attrsecond + ']', this).length >= 1
}).css('color', 'red')
});
});
</script>
我在哪裏錯了?而我不明白從Jquery文檔中,.has
接受Jquery對象嗎?
很抱歉,但哪裏是你的'.container'在你的HTML標記? –
已保存編輯。我必須再試一次... –