我在追加值后获取最后一个值时遇到问题。
示例:
alert($('#ulscroller li:last-child').last().val());
$('#ulscroller li:last-child').append('<li value="21">21</li><li value="22">22</li><li value="23">23</li>');
alert($('#ulscroller li').last().val());
$('#ulscroller li:last-child').append('<li value="24">24</li><li value="25">25</li><li value="26">26</li>');
alert($('#ulscroller li').last().val());
提示结果:
20
23
25
问题在于结果。两次24,25,26。
Ckeck这个小提琴:http://jsfiddle.net/f5v6R/171/
任何人都知道如何解决它?
谢谢。
答案 0 :(得分:1)
只是为了扩展您的问题:
你刚开始这样:
<ul id="ulscroller">
<li value="1" class="selected">1</li>
<li value="2">2</li>
...
<li value="19">19</li>
<li value="20">20</li>
</ul>
并且您想要添加一些额外的<li>
元素来实现此目的:
<ul id="ulscroller">
<li value="1" class="selected">1</li>
<li value="2">2</li>
...
<li value="19">19</li>
<li value="20">20</li>
<li value="21">21</li>
<li value="22">22</li>
<li value="23">23</li>
<li value="24">24</li>
<li value="25">25</li>
<li value="26">26</li>
</ul>
使用$('#ulscroller li:last-child')
选择列表中的最后一个<li>
,但使用.append()
然后将这些新的<li>
元素添加到最后<li>
<ul id="ulscroller">
<li value="1" class="selected">1</li>
<li value="2">2</li>
...
<li value="19">19</li>
<li value="20">20
<li value="21">21</li>
<li value="22">22</li>
<li value="23">23</li>
</li>
</ul>
1}},所以,在第一次追加后你最终会
$('#ulscroller li:last-child')
现在使用<li>
将最终选择两个不同的<li value="20">20
<li value="21">21</li>
<li value="22">22</li>
<li value="23">23</li>
</li>
元素:
<li value="23">23</li>
和
append
然后,第二个<li>
会将新的.after()
元素插入到两个中,导致重复24 25 26.使用.append()
代替<li>
新<li>
添加到与其他$('#ulscroller li:last-child')
相同的级别,因此只有一个列表,而$('#ulscroller').append
只返回一个选定的元素。 @Tamil Selvan的评论会在这种情况下给出相同的结果,因为<ul>
总会在nm