2010-04-06 15 views
2

J'ai une table html:Comment arrêter jQuery de retourner des onglets et des espaces à partir du code formated sur .html() .val() .text() etc

<table><tr> 
<td>M1</td> 
<td>M2</td> 
<td>M3</td> 
<td>M4</td> 
</tr></table> 

et un script simple JQ:

$('td').click(function(){ alert($(this).html()); }); 

Cela fonctionne très bien .... mais dans le monde réel, j'ai plusieurs centaines de cellules de table et le code est formaté de manière incorrecte dans des endroits à cause de plusieurs personnes éditent la page.

Donc, si le code html est:

 <td> 
        M1   

      </td> 

l'alerte() me donne tous les onglets et les retours et les espaces:

Javascript Alert http://bit.ly/9B0Xon

Que puis-je faire pour obtenir uniquement les texte sans les onglets et les espaces? J'ai essayé .html(), .val(), .text() en vain. Merci!

Répondre

1

Vous pouvez couper la chaîne:

String.prototype.trim = function() { 
    return this.replace(/^\s*/, '').replace(/\s*$/, ''); 
}; 

et l'utiliser comme ceci:

$('td').click(function() { 
    var html = $(this).html().trim(); 
    alert(html); 
}); 
2

Nick et Darin posté un excellent moyen de réduire l'espace blanc de la b eginning et à la fin du contenu, mais dans le cas où vous avez beaucoup d'espace blanc au milieu, dire par exemple:

<div> 
      M1 
                M2 
    </div> 

Vous pouvez couper tout l'espace blanc en utilisant cette combinaison:

$('div').click(function() { 
var html = $.trim($(this).html().replace(/(\s+)/g,' ')); 
alert(html); 
})