<div class="b">
<h1>Hello</h1>
<div class="a">
<p class="ABC">A..........Z</p> //this could be present in some pages
</div>
</div>
这是一段代码中,我想的CSS属性添加到DIV的<h1>
与“B”类,如果<p>
包含class="ABC"
。怎么做?
if($('p').hasClass('ABC')){
$('h1').addClass('b');
}
您可以使用标签名称和类之间的点指的元素。
尝试$('div.b p.ABC')
的选择:
div.b
将选择类b
任何DIV
下面空间指示下一个匹配元素(p.ABC
)将前一个元素(div.b
)的内部。
p.ABC
将选择类ABC
任何DIV
$('div.b p.ABC').addClass('test');
.test{
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="b">
<h1>Hello</h1>
<div class="a">
<p class="ABC">A..........Z</p> //this could be present in some pages
</div>
</div>
$('.b').each(function() {
var b = $(this);
var h1 = b.find('h1');
var p = b.find('div.a p');
if (p.is('[class="ABC"]')) {
h1.css({color: 'red'});
}
});
这个检查确切属性class="ABC"
如果你想不区分大小写,您可以使用p.is('.abc')
或p.hasClass('abc')
,如果你想,如果它有ABC类大写,您可以使用is('[class^="ABC "],[class$=" ABC"], [class="ABC"]')
您可以使用:
if($(".b p.ABC").length)
要检查是否带班b
元素具有p
标签作为具有类ABC
一个孩子。
然后,您可以使用.css
添加CSS到适当的元素(在这里,元素是$(".b h1")
)。
请参见下面的工作例如:
if($(".b p.ABC").length) {
$(".b h1").css({'color': 'red'});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="b">
<h1>Hello</h1>
<div class="a">
<p class="ABC">A..........Z</p> //this could be present in some pages
</div>
</div>