2011-05-06 6 views
2

Je tel noeud HTML:Comment récupérer le contenu

<div id='parent'> 
    <a href="#">test</a> 
    Need this 
</div> 

Comment obtenir « besoin ce » texte si j'ai poignée pour objet parent? J'ai essayé quelque chose comme: $('#parent').text() mais il retourne aussi 'test'.


p.s. Rien sur l'édition html! J'ai juste un tel contenu et je dois l'analyser.

+4

Pourquoi n'enveloppez-vous pas votre texte dans une balise de paragraphe ou une balise span? Il serait beaucoup plus facile d'essayer d'obtenir ce texte. –

+0

@Nick Regardez la mise à jour, s'il vous plaît. – Ockonal

+0

La page d'aide pour .contents() donne un exemple pour "Trouver tous les nœuds de texte à l'intérieur d'un paragraphe et les entourer d'une étiquette en gras." cela pourrait vous aider à démarrer sur le bon chemin ... http://api.jquery.com/contents/ Je pense que ce n'est pas assez utile pour être considéré comme une "réponse" ... :-) – kshep

Répondre

4

Si vous savez que le contenu du texte est toujours le dernier contenu dans le div, vous pouvez le faire:

$('#parent').contents().last().text(); 

sur ce balisage:

<div id='parent'> 
    <a href="#">test</a> 
    Need this 
</div> 

Retours:besoin de cette

Exemple: http://jsfiddle.net/64RVf/

6
var temp = $('#parent').clone(); 
temp.children().remove(); 
alert(temp.text()); 

exemple de travail: http://jsfiddle.net/hunter/H6jQp/

+0

Souhaite que je pourrais +10 cela juste pour me montrer jsfiddle.net – kshep

0

cela devrait le faire:

$('a').click(function(){ 
    alert($(this).parent().clone().find('a').remove().end().text()); 
}); 

est ici un violon: http://jsfiddle.net/RTqyy/

probablement pas la meilleure façon, je voudrais envelopper ce texte dans un div ou span ou p. mais cela va fonctionner.

0
var $text = $("#parent").contents().filter(function(){ return this.nodeType != 1; }); 
alert($text.text()); 

semble faire l'affaire. (jsFiddle)

Questions connexes