Cómo dejar de jQuery regresar tabulaciones y espacios del código formateado en html () .val () .text (), etc.
Pregunta
Tengo una tabla HTML:
<table><tr>
<td>M1</td>
<td>M2</td>
<td>M3</td>
<td>M4</td>
</tr></table>
y un simple script jQ:
$('td').click(function(){ alert( $(this).html() ); });
Esto funciona muy bien .... pero en el mundo real, tengo varios cientos de celdas de la tabla y el código está mal formateado en lugares debido a varias personas editando la página.
Así que si el html es:
<td>
M1
</td>
A continuación, la alerta () me está dando todas las pestañas y los retornos y espacios:
Alerta Javascript http://bit.ly/9B0Xon
¿Qué puedo hacer para que sólo el texto sin las tabulaciones y espacios? He intentado html (), .val (), .text () sin ningún resultado. Gracias!
Solución
un sistema incorporado en función de cortar, $.trim()
, se puede utilizar como esto:
$('td').click(function() { alert( $.trim($(this).html()) ); });
Otros consejos
Nick y Darin publicado una gran manera de recortar el espacio en blanco desde el principio y final del contenido, pero en caso de tener una gran cantidad de espacio en blanco en el medio, decir esto como un ejemplo:
<div>
M1
M2
</div>
Puede recortar todos los espacios en blanco usando esta combinación:
$('div').click(function() {
var html = $.trim($(this).html().replace(/(\s+)/g,' '));
alert(html);
})
Puede recortar la cadena:
String.prototype.trim = function () {
return this.replace(/^\s*/, '').replace(/\s*$/, '');
};
y utilizar de esta manera:
$('td').click(function() {
var html = $(this).html().trim();
alert(html);
});