Jquery 第n个孩子选择器,有点奇怪
小提琴在这里- 这里是HTML-Jquery 第n个孩子选择器,有点奇怪,jquery,html,jquery-selectors,Jquery,Html,Jquery Selectors,小提琴在这里- 这里是HTML- <div class="parent"> <div class="a">Class A</div> <div class="b">Class B1</div> <div class="b">Class B2</div> <div class="b">Class B3</div> <div class="b"&g
<div class="parent">
<div class="a">Class A</div>
<div class="b">Class B1</div>
<div class="b">Class B2</div>
<div class="b">Class B3</div>
<div class="b">Class B4</div>
<div class="b">Class B5</div>
</div>
上面我已经写了.b:nth child(2)
,为什么我不能选择class=“b”
的第二个元素呢
我想突出显示B2类为颜色:红色
,但我得到B1类为颜色:红色
。伙计们,有什么问题吗?如果这就是它的工作原理,那么根据我的说法,这是这种选择器的一个缺陷
小提琴只是想让你们知道我的问题是什么,但在我真正的问题中,我有n个孩子(2)
作为n个孩子(j+1)
,其中j
也扮演着其他角色,它不能使它成为j+2
任何人都可以告诉我突出显示的解决方法,B2类将选择第n个子项。因此,如果指定2,它将执行第二步。如果需要第三个,请指定3
看看他们的例子
$("ul li:nth-child(2)")
John
Karl - 2nd!
Brandon
我不明白为什么您不能使它成为j+2
将选择n
子级。因此,如果指定2,它将执行第二步。如果需要第三个,请指定3
看看他们的例子
$("ul li:nth-child(2)")
John
Karl - 2nd!
Brandon
我不明白为什么不能将其设置为
j+2
,因为第n个孩子的jquery文档索引不是零基的。它从1开始。因为第n个孩子的jquery文档索引不是零基的。它从1开始。为什么不使用:eq(2)
而不是:第n个孩子(2)
。
为了得到B2,你需要写:
$(".parent").children(".b:eq(1)").css("color", "red");
更新
对于您最初的问题,为什么第n个孩子(2)没有选择第二个孩子,我找到了原因。我发现:
:nth child(n)伪类很容易与:eq(n)混淆,甚至
尽管这两种方法可能会产生截然不同的匹配元素。
对于:n个子项(n),将计算所有子项,无论它们是什么
是,并且仅当指定的元素与
附加到伪类的选择器。带有:eq(n)仅选择器
附加到伪类的已计数,但不限于
任何其他元素,并选择第(n+1)个元素(n是基于0的)
那么你的情况呢
$(“.parent”).children(“.b:nth child(2)”).css(“颜色”、“红色”)代码>
:n子元素(2)
计算.parent
的子元素,并且仅当元素为.b
时才返回。为什么不使用:eq(2)
而不是:n子元素(2)
。
为了得到B2,你需要写:
$(".parent").children(".b:eq(1)").css("color", "red");
更新
对于您最初的问题,为什么第n个孩子(2)
没有选择第二个孩子,我找到了原因。我发现:
:nth child(n)伪类很容易与:eq(n)混淆,甚至
尽管这两种方法可能会产生截然不同的匹配元素。
对于:n个子项(n),将计算所有子项,无论它们是什么
是,并且仅当指定的元素与
附加到伪类的选择器。带有:eq(n)仅选择器
附加到伪类的已计数,但不限于
任何其他元素,并选择第(n+1)个元素(n是基于0的)
那么你的情况呢
$(“.parent”).children(“.b:nth child(2)”).css(“颜色”、“红色”)代码>
:第n个子项(2)
计算.parent
的子项,并且仅当元素为.b
时才返回。jQuery第n个子项
源自CSS规范。因此,它是1索引的,而不是0索引的。好吧,那么为什么我不能选择class=“b”的第二个子项呢?jQueryn子项
是从CSS规范派生的。因此,它是1索引的,而不是0索引的。那么为什么我不能选择class=“b”的第二个子级呢?