私はこのマークアップを持っています:
<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オブジェクトを受け入れますか?