![](/img/trans.png)
[英]selector inside jquery .next() method is not selecting correct element
[英]jquery selector: selecting all elements next to element
這是我的標記:
<ul>
<li class='product'></li>
<li id='foo' class='product'></li>
<li class='insert'></li>
<li class='insert'></li>
<li class='product'></li>
<li class='product'></li>
<li class='product'></li>
</ul>
從li#foo開始,我想在LAST .insert元素后附加另一個li.insert
元素-我想我需要從具有類插入的#foo中選擇所有鄰居元素,然后附加一個新項目。
所需的輸出:
<ul>
<li class='product'></li>
<li id=foo class='product'></li>
<li class='insert'></li>
<li class='insert'></li>
<li class='insert'>new item</li>
<li class='product'></li>
<li class='product'></li>
<li class='product'></li>
</ul>
使用:last
偽類選擇器獲取最后一個元素,並在jQuery中使用after()
方法插入li
。
// get the last `li` with the class $('ul li.insert:last') // append the html string after the element .after('<li class="select">New Item</li>')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li class='product'></li> <li id=foo class='product'></li> <li class='insert'></li> <li class='insert'></li> <li class='product'></li> <li class='product'></li> <li class='product'></li> </ul>
如果使用jQuery生成元素,則可以使用insertAfter()
方法。
// generate li with the content $('<li/>', { class: 'select', text: 'New Item' // insert after the last li with specific class }).insertAfter('ul li.insert:last')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li class='product'></li> <li id=foo class='product'></li> <li class='insert'></li> <li class='insert'></li> <li class='product'></li> <li class='product'></li> <li class='product'></li> </ul>
更新:如果只想在#foo
元素之后考慮該元素,請使用nextAll()
方法。
// get the `li` with the id $('#foo') // get the last `li` after it with a certain class .nextAll('.insert:last') // append the html string after the element .after('<li class="select">New Item</li>')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li class='product'></li> <li id=foo class='product'></li> <li class='insert'></li> <li class='insert'></li> <li class='product'></li> <li class='product'></li> <li class='product'></li> </ul>
如果要依賴#foo
使用兄弟姐妹在同一級別的#foo
上捕獲<li>
,並使用:last
偽類在最后一個<li>
之后插入元素
$('#foo').siblings('.insert:last').after('<li class="insert">New Item</li>')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li class='product'></li> <li id=foo class='product'></li> <li class='insert'></li> <li class='insert'></li> <li class='product'></li> <li class='product'></li> <li class='product'></li> </ul>
嘗試這個
$('li.insert:last-child').after('<li class="insert">new item</li>');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.