2012-07-31 103 views
5

我試圖在列表中的每個元素之後簡單地添加一個逗號。JQuery語法錯誤,無法識別的表達式:,

$('#tag_cloud-2 div.tagcloud a').each(function(){ 
    console.log($(this)); 
    $(", ").after($(this)); 
}); 

控制檯吐出標籤,所以我知道它正在找到它們。我也嘗試過insertAfter,但沒有運氣。這個接縫應該是這樣簡單的事情!謝謝你指出我錯過了什麼。

+0

'「,」'被解釋爲選擇器,因此它是無效的。你的'.after()'的用法也是錯誤的。請參閱:http://api.jquery.com/after/ – 2012-07-31 17:16:31

+0

我想你的意思是'$(this).after(',');' – neokio 2012-07-31 17:17:25

+0

你在哪裏試圖寫這個?應該將逗號分隔列表發送到控制檯還是某件事情? – PCasagrande 2012-07-31 17:17:56

回答

5

$(', ')被視爲選擇器(無效),因爲它無法創建包含字符串的文本節點。

$("<span>, </span>").after($(this));將工作,因爲一個有效的標記。

嘗試:

$(this).after(', '); 

OR

$(this).append(', '); 

OR

$(this).text(function(i, oldText) { 
    return oldText + ', '; 
}) 
1

jQuery的$()功能完全不是那麼回事那樣的。在非標記字符串上調用它不會創建包含該字符串的文本節點。

您可以反你的邏輯,從$(this)開始,然後調用after(),雖然:

$(this).after(", "); 

因爲after()創建一個新的文本節點,如果它的一個參數是一個非標記字符串。

相關問題