这是工作小提琴: - code
var _listings = $("#listings .listingContent");
_listings.eq(4).after("<li class=\"ad\">x</li>");
_listings.eq(9).after("<li class=\"ad\">x</li>");
当我尝试在第9个索引之后插入li,即第10个元素时,我无法做到这一点,因为这里总共有9个元素。
有没有办法在最后一个可能的元素之后插入它,即第9个元素而不是第10个元素。
类似地,如果总li元素= 8并且有人试图在第10个元素之后插入,则应该在第8个元素之后插入。
答案 0 :(得分:1)
jQuery eq
基于0,所以如果你想在最后一个之后添加一个元素,你应该使用长度减1或last()
:
var _listings = $("#listings .listingContent");
_listings.eq(3).after("<li class=\"ad\">x</li>");
_listings.last().after("<li class=\"ad\">x</li>");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="listings">
<li class="listingContent">1</li>
<li class="listingContent">2</li>
<li class="listingContent">3</li>
<li class="listingContent">4</li>
<li class="listingContent">5</li>
<li class="listingContent">6</li>
<li class="listingContent">7</li>
<li class="listingContent">8</li>
<li class="listingContent">9</li>
</ul>
答案 1 :(得分:0)
您可以使用var来获取集合的长度。
var count=_listings.length;
_listings.eq(count).after("<li class=\"ad\">x</li>");