2011-10-04 2 views
0

마지막으로 올바른 질문을하는 법을 알아 냈습니다. 즉, 순서가없는 빈 목록에 : eq 필터 카운터를 추가하는 방법이 무엇입니까?비어있는 순서가없는 목록에 : 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

그것은 빈 UL 또는 OL을 가지고 (적어도 4.01) 잘못된 HTML입니다. Firefox는 사용자를 대신하여 DOM에 빈 LI를 실제로 추가하므로 향후 문제가 발생할 수 있습니다. 더욱 중요한 것은 $('#list li')이라는 노드와 아직 존재하지 않는 노드 (eq(n)은 관계 없음)를 사용하여 jQuery 객체를 만들려고한다는 것입니다. 다음

+0

감사가를 설명하기위한 gregp '리'의 아이를 추가하지 않을 경우, "UL"의 하위 요소가 있다면 확인, 코드에서 http://jsfiddle.net/geb6p/

: 여기 –

+1

후속 조치 : 새 광고 항목을 추가하려는 경우 .append()를 대안이나 보완책으로 사용할 수 있습니다. 특정 슬롯에 들어가기 위해 필요한 것처럼 보입니다. 일단 목록이 있으면, eq (n)은 작동해야합니다. 그러나 이것은 여하튼 ... Fiddle : http://jsfiddle.net/CWtCF/ - –

1

은 작업 예입니다 표준. 어쩌면 이것이 버그라고 생각했는데 이것은 의도적으로 설계된 것입니다.
관련 문제