<ul>
<li class="js"><span>JavaScript</span></li>
<li class="js"><span>Python</span></li>
<li class="jsa"><span>Swift</span></li>
</ul>
另见link。
我不知道我对孩子们的理解是不是是正确的,但在这种情况下,我认为JavaScript和Python是元素的两个孩子,类是&#39; js&#39;。使用$('li').filter('li.js:first-child')
我可以获得JavaScript#,但我无法获得Python&#39;使用$('li').filter('li.js:last-child')
。
所以我觉得这种情况证明了JavaScript&#39;和#&#39; Python&#39;是具有班级&#39; js&#39;
的元素的孩子然而,对我来说奇怪的是,当我制作斯威夫特&#39;有班级&#39; js&#39;,
<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&#39;
另外,我知道我可以使用:最后我得到了Python&#39;当它是第二个和最后一个同时。但我不明白为什么:last-child
在同样的情况下无效。
感谢您的时间!
答案 0 :(得分:1)
使用: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'));
})
&#13;
<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>
&#13;