2012-07-31 9 views
5

リスト内の各要素の後にコンマを追加するだけです。JQuery構文エラー、認識できない式:

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

コンソールがタグを吐き出すので、私はそれがそれらを見つけることがわかります。 insertAfterも試したことがあるが、運がない。このような継ぎ目は、そう簡単なことでなければなりません!私が迷っていることを指摘してくれてありがとう。

+0

'"、 "'はセレクタとして解釈されるため、無効です。 '.after()'の使い方も間違っています。参照してください:http://api.jquery.com/after/ –

+0

あなたは '$(this).after( '、');' – neokio

+0

を意味すると思います。これはどこに書こうとしていますか?カンマで区切られたリストをコンソールや何かに送るべきでしょうか? – PCasagrande

答えて

5

$(', ')は、文字列を含むテキストノードを作成できないため、セレクタ(無効)として扱われます。

しかし

$("<span>, </span>").after($(this));があるため、有効なマークアップで動作します。

試してみてください。

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

OR

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

OR

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

jQueryの$()機能は非常にそのように動作しません。非マークアップ文字列でそれを呼び出すと、その文字列を含むテキストノードは作成されません。

あなたはしかし、あなたのロジックを反転$(this)から始め、その後、after()を呼び出すことができます。

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

引数の1つが非マークアップ文字列の場合after()は、新しいテキストノードを作成するため。

関連する問題