2

我有一个这样的列表元素:

<ul id="myList">
   <li>First</li>
   <li>Second</li>
   <li>Third</li>

我想插入<li>Ex</li>before的一个元素<li>Third>/li>。到目前为止,我一直在尝试插入<li>Ex</li>的所有内容都是<li>Second</li>. 我使用了以下 jquery 方法:

insertAfter()、before()、after()、appendTo()……它们都做了同样的事情。这是它的样子:

<ul id="myList">
   <li>First</li>
   <li>Second
       <li>Ex</li>
   </li>
   <li>Third</li>

但我想要这样:

<ul id="myList">
   <li>First</li>
   <li>Second</li>
   <li>Ex</li>
   <li>Third</li>

对于如何解决这个问题,有任何的建议吗?任何指针表示赞赏。

4

2 回答 2

7

你可以这样做

 $('<li>Ex</li>').insertAfter('li:eq(<give childnumber here>)')

你想在<li>Second</li>使用后插入eq(1)

jsFiddle

于 2012-12-08T16:58:13.220 回答
1
​$('li', '#myList')​​​.filter(function() {
     return $.trim($(this).text()) == 'Third';
})​.before($('<li />', {text: 'EX'}))​​​

小提琴

或者如果索引始终相同:

$('li', '#myList').eq(2).before($('<li />', {text: 'EX'}))​​​;

小提琴

于 2012-12-08T17:07:20.837 回答