2011-10-03 20 views
0

爲什麼此代碼無法正常工作?含義沒有顯示到ul標籤中。eq fliter無法正常工作

$("#server").each(function() 
{ 
    var textValue = $(this).text(); 

    $('#list li').eq(counter).append('<li>' + textValue + '</li>');  // <-- not working 
    $('#list li').eq(counter).insertAfter('<li>' + textValue + '</li>'); // <-- or not working 
    $('#list')append('<li>' + textValue + '</li>');      // <-- or working 
}); 

<div> 
    <ul id="list"></ul> 
</div> 
+0

'counter'在哪裏申報? –

+0

你是不是指'.each(function(counter){...});'另外,#server是一個id,應該只發生一次。如果你的意思是一個類,'.server'應該被用作選擇器。 – Matijs

+0

您是否收到錯誤訊息? –

回答

2
  1. #server只能匹配的單個元素。
  2. counter未定義。
  3. #list不包含任何項目,所以#list li將不會匹配任何內容。
  4. 您錯過了append之前的某段時間。
0

我看到兩個問題。

  1. $('#list li')由於沒有<li>還沒有解決任何問題。應該是ul
  2. 如果您在迭代過程中查看eq的特定索引,您可能希望將當前索引傳入仿函數,如下所示:$('#server').each(function(counter){... - 但也許counter來自其他位置,但從您的發佈中不清楚。

問候 分貝

0

我覺得你完全的答案是here in your previous question關於這一主題(在讀我的答案的評論你的問題)。

我想你想要jQuery的方法.after()而不是.insertAfter()。完整的工作示例,包括jsFiddle here

$('#list li').eq(counter).after('<li>' + textValue + '</li>');