Cómo dejar de jQuery regresar tabulaciones y espacios del código formateado en html () .val () .text (), etc.

StackOverflow https://stackoverflow.com/questions/2588224

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!

¿Fue útil?

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); 
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top