2012-07-31 12 views
5

Estoy intentando simplemente agregar una coma después de cada elemento en una lista.JQuery Error de sintaxis, expresión no reconocida:

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

La consola escupe las etiquetas, así que sé que las está encontrando. Intenté insertar después también, pero sin suerte. Esto parece que debería ser algo tan simple de hacer. Gracias por señalar lo que me estoy perdiendo.

+0

'", "' se interpreta como selector y, como tal, no es válido. También su uso de '.after()' es simplemente incorrecto. Ver: http://api.jquery.com/after/ –

+0

Creo que te refieres a '$ (this) .after (',');' – neokio

+0

¿Dónde intentas escribir esto? ¿Debería enviarse la lista separada por comas a la consola o algo así? – PCasagrande

Respuesta

5

$(', ') se trata como selector (no válido), porque no puede crear un nodo de texto con una cadena.

Pero

$("<span>, </span>").after($(this)); va a funcionar debido a un marcado válido.

Probar:

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

O

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

O

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

función de jQuery $() no acaba el trabajo de esa manera. Llamarlo a una cadena que no sea de marcado no crea un nodo de texto que contenga esa cadena.

Puede invertir su lógica, empezar desde $(this), a continuación, llamar after(), sin embargo:

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

Debido after() crea un nuevo nodo de texto si uno de sus argumentos es una cadena no marcado.

Cuestiones relacionadas