我想使用jQuery选择一个类的第一个元素,这些元素是另一个类的元素的子元素。请查看下面的示例以了解我的问题。
<div class="a">
<div class="c"></div>
<div></div>
<div class="b">Select this</div>
<div class="b"></div>
<div class="b"></div>
</div>
<div class="a">
<div></div>
<div class="c"></div>
<div class="b">Select this</div>
<div class="b"></div>
<div class="b"></div>
</div>
<div class="a">
<div class="b">Select this</div>
<div class="b"></div>
<div class="b"></div>
<div></div>
<div class="c"></div>
</div>
我想在jQuery中编写一个代码,它将在类a的所有元素下选择b类的所有第一个元素。
如果我在jQuery中使用以下代码,它不起作用:
$(".a div.b:first-child").html('Changed!!!!');
如何选择那些我在html中标记为“选择此项”的div?
答案 0 :(得分:4)
使用:first
代替:first-child
,并对特定部分使用.find
。见下文,
$(".a").find("div.b:first").html('Changed!!!!');
答案 1 :(得分:0)
这应该有效:
.a > .b:first-child, .a > :not(.b) + .b
与jQuery支持的非标准:first
伪类相比,在本机支持querySelectorAll()
的浏览器(IE9 +)中,这应该更快更快。
答案 2 :(得分:0)
请改为尝试:
$(".a div.b:eq(0)").html('Changed!!!!');
// OR
$(".a div.b:first").html('Changed!!!!');
答案 3 :(得分:0)
如果要更改标记中包含“选择此内容”的文字:
$('.a div').each(function()
{
if ( $(this).html() == 'Select this' )
$(this).html('changed');
});