我终于弄清楚如何提出正确的问题,即如何在空的无序列表中添加: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>')
});
答案 0 :(得分:1)
以下是一个工作示例:http://jsfiddle.net/geb6p/
在代码中,我检查“ul”中是否有任何子元素,如果没有,则追加“li”的子元素
答案 1 :(得分:0)
具有空UL或OL的无效HTML(至少4.01)。 Firefox实际上会代表您向DOM添加一个空LI,这可能会在将来引发问题。但更重要的是,您正在尝试使用$('#list li')
创建一个jQuery对象,这个节点根本不存在(无论eq(n)
)。