<ul>
<li class="js"><span>JavaScript</span></li>
<li class="js"><span>Python</span></li>
<li class="jsa"><span>Swift</span></li>
</ul>
另请参阅链接。
我不知道我对“子代”的理解是否正确,但是在这种情况下,我认为JavaScript和Python是元素为“ js”的两个子代。使用$('li').filter('li.js:first-child')
可以获取'JavaScript',但不能使用'Python' $('li').filter('li.js:last-child')
。
所以我认为这种证明“ JavaScript”和“ Python”是“ js”类元素的子代
但是,对我来说很奇怪的是,当我使“ Swift”具有类“ js”时,
<ul>
<li class="js"><span>JavaScript</span></li>
<li class="js"><span>Python</span></li>
<li class="js"><span>Swift</span></li>
</ul>
使用$('li').filter('li.js:last-child')
可以得到'Swift'
另外,我知道我可以使用:last,当它同时是第二个和最后一个时,我确实得到了“ Python”。但我只是不明白为什么:last-child
在相同情况下不起作用。
感谢您的时间!
使用:last
替代last-child
,因为last-child
将目光父容器的最后一个孩子喜欢ul
而你的情况是.jsa
,当你不喜欢它,你现在要做的。另外,您不应该在不添加li
的li
情况下添加<ul>
,我的意思是可以,但这是不对的。试试这个:
//$('li').filter('li.js:last-child')
$('.js:last').click(function() {
$('<li><span>C#</span></li>').appendTo($('li').filter('.js'));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test-div">
<ul>
<li class="js"><span>JavaScript</span>
</li>
<li class="js"><span>Python</span>
</li>
<li class="jsa"><span>Swift</span>
</li>
</ul>
</div>
Use `:last` because `last-child` select only the last-child of a parent:
<h2>Greetings</h2>
<div class="container">
<div class="inner">Hello</div>
<div class="inner">Goodbye</div>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句