2012-07-31 9 views
5

Staram się po prostu dodać przecinek po każdego elementu w liście.JQuery błąd składni, nierozpoznany wyrażenie:,

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

Konsola wypluwa znaczniki, więc wiem, że je znajduje. Próbowałem insertAfter również, ale bez powodzenia. Takie szwy powinny być tak proste! Dzięki za wskazanie tego, czego mi brakuje.

+0

'„”' jest interpretowany jako selektor i jako taka jest ona nieważna. Również użycie '.after()' jest błędne. Zobacz: http://api.jquery.com/after/ –

+0

myślę znaczy '$ (this) .Po ('');' – neokio

+0

Jeżeli starasz się pisać o tym? Czy lista rozdzielona przecinkami powinna być wysłana na konsolę lub coś w tym stylu? – PCasagrande

Odpowiedz

5

$(', ') jest traktowany jako selektor (nieaktywny), ponieważ nie może tworzyć węzeł tekstową zawierającą łańcuch.

Ale

$("<span>, </span>").after($(this)); będzie działać z powodu ważnego znaczników.

Spróbuj:

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

LUB

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

LUB

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

$() funkcja jQuery nie dość pracy tak. Wywołanie go w łańcuchu innym niż znacznik nie tworzy węzła tekstowego zawierającego ten ciąg.

można odwrócić logikę, zacznij od $(this), a następnie zadzwonić after(), choć:

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

Ponieważ after() tworzy nowy węzeł tekstowy, gdy jeden z jej argumentów jest ciągiem bez znaczników.

Powiązane problemy