如何在空的无序列表中添加:eq过滤器计数器?

时间:2011-10-04 04:17:15

标签: jquery

我终于弄清楚如何提出正确的问题,即如何在空的无序列表中添加:eq过滤器计数器?

例如,以下代码似乎只在ul / li为空时才添加li数据。

<button id="go">Add</button><br>
<label>Position to Add: <input id="pos" value="2" type="text" maxlength="1"</label>    
<br>
<label>Text to Add: <input id="newText" value="New Item" type="text"></label><br>
<br>
<ul id="list"> </ul>

$("#go").click(function() {
    var item = $("#newText").val();
    var n = parseInt($("#pos").val(), 10);
    $('#list li').eq(n).after('<li>' + item + '</li>')
});

如果我手动将一个项目添加到列表中,那么下面的jquery代码就可以了。

<button id="go">Add</button><br>
<label>Position to Add: <input id="pos" value="2" type="text" maxlength="1"</label>    
<br>
<label>Text to Add: <input id="newText" value="New Item" type="text"></label><br>
<br>
<ul id="list"><li> test </li> </ul>

$("#go").click(function() {
    var item = $("#newText").val();
    var n = parseInt($("#pos").val(), 10);
    $('#list li').eq(n).after('<li>' + item + '</li>')
});

2 个答案:

答案 0 :(得分:1)

以下是一个工作示例:http://jsfiddle.net/geb6p/

在代码中,我检查“ul”中是否有任何子元素,如果没有,则追加“li”的子元素

答案 1 :(得分:0)

具有空UL或OL的无效HTML(至少4.01)。 Firefox实际上会代表您向DOM添加一个空LI,这可能会在将来引发问题。但更重要的是,您正在尝试使用$('#list li')创建一个jQuery对象,这个节点根本不存在(无论eq(n))。