2012-07-30 2 views
2

J'ai ce codeJquery pas aller chercher « h1 » du texte

success: function(data) { 
title = $(data).find('h1').text(); 
alert(data); 
alert(title); 

} 

Maintenant données montre tous les fichiers HTML avec des balises h1, mais le titre montre null

+1

Pourriez-vous fournir des exemples de données? –

+1

Il montre réellement 'null'? Je pense qu'il montrerait une chaîne vide si aucune correspondance n'a été trouvée. –

Répondre

2

La méthode .find() recherche les éléments descendants, donc si votre élément h1 est au niveau "supérieur", il ne sera pas trouvé. Essayez .filter() à la place:

title = $(data).filter('h1').text(); 

« Fondamentalement, je veux saisir l'h1 et de mettre dans la variable puis mettre le code html restant dans la variable de données »

Étant donné un paramètre data qui est chaîne quelque chose comme ceci:

"<h1>My heading</h1><p>This is a test</p><p>This <span>is another</span> test.</p>" 

Vous pouvez faire ceci:

var $data = $(data), 
    $title = $data.filter("h1"), 
    title = $title.text(); 

$data = $data.not($title); 

Les résultats ci-dessus dans deux objets jQuery: $title, qui contient l'élément h1, et $data, qui contient le reste. De là, vous pouvez utiliser $title.text() pour obtenir le texte actuel de la h1.

démonstration simple: http://jsfiddle.net/yyKCW/

Si vous voulez dire que vous voulez que le "reste html" comme une chaîne alors vous pouvez faire ce qui suit après la mise en $data comme ci-dessus:

var restAsString = $("<div></div>").append($data).html(); 

Demo: http://jsfiddle.net/yyKCW/1/

+0

merci mon pote, qui a parfaitement fonctionné – user825904

2

Si vos données se compose de quelque chose comme:

<h1>heading</h1> 
<p>content</p> 

Ensuite, vous devez l'envelopper avant d'effectuer vos requêtes:

var title = $('<div/>').html(data).find('h1').text(); 
alert(title); 
+0

merci mon pote qui a fonctionné. Je ne l'emballais pas. une chose de plus, quelle est la différence entre 'title = xxx' et' var title = xxxx' – user825904

+0

@ user1544681 content que ça a aidé! Voici une bonne réponse à votre question 'var': http://stackoverflow.com/a/2485895/187954 –

+0

@ user1544681 ne hésitez pas à accepter la réponse si elle vous a aidé à résoudre votre problème! –

Questions connexes