在jQuery中构建A / B测试,原始页面中HTML的结构是:
<div>
<ul>
<li>
<ul>
<li>
但是当我使用div ul li:nth-child(1).addClass(&#34; test&#34;);它将所有课程添加到所有人的课程中。元件..
如何阻止它将类添加到所有li元素并将其保留到第一个li?
答案 0 :(得分:2)
div ul > li:nth-child(1).addClass("test");
答案 1 :(得分:0)
您应该使用div
元素上的jQuery's children()
method来选择ul
元素,该元素是div
的直接子元素。然后,您可以使用find()
来提取:first
li
元素。
$('div').children('ul').find('li:first').addClass('test')
或者您可以使用jQuery's first()
method代替其:first
选择器:
$('div').children('ul').find('li').first().addClass('test')
$('div').children('ul').find('li:first').addClass('test')
&#13;
.test {
border: 1px solid #f00;
padding: 20px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
<ul>
<li>
Not-nested List Item (should have border)
<ul>
<li>
Nested List Item (should not have border)
</li>
</ul>
</li>
</ul>
</div>
&#13;