2009-05-07 6 views
0

J'ai lu la documentation à plusieurs reprises et je ne peux pas obtenir pourquoi cela ne fonctionne pas:

De l'intérieur d'une fonction, appelant ce qui suit:

alert($(this).parent().parent().html()); 

retours quelque chose qui ressemble à ceci:

<div class="something1"> 
    <div class="whereThisStarted">stuff</div> 
    </div> 
<div class="something2">stuff</div> 
<div class="somethingSpecial">stuff</div> 
<div class="something4">stuff</div> 

Je veux obtenir "somethingSpecial". Il me semble que l'un ou l'autre des éléments suivants devrait fonctionner, mais ils retournent tous deux à zéro.

alert($(this).parent().parent().children(".somethingSpecial").html()); 
alert($(this).parent().parent().filter("div.somethingSpecial").html()); 

Qu'est-ce qui ne va pas?

Merci

Répondre

6

si vous devez vraiment le faire la façon dont vous voulez et comment TStamper a montré, essayez ceci:

alert($(this).parent().parent().find("div.somethingSpecial").html()); 
+0

Oui! Ça a marché. Je voudrais toujours savoir ce qui ne va pas avec les autres déclarations. Merci –

+0

Je suppose que le filtre est dans le cas où votre sélecteur retourne plusieurs objets. Ici j'ai 1 objet. –

+0

ne me citez pas sur ce point mais je pense que la raison pour laquelle les enfants ne travaillent pas, c'est parce qu'il renvoie un tableau d'éléments. J'ai trouvé la documentation vague donc je ne comprends pas vraiment –

2

Vous pourriez vouloir essayer le plus proche Fonction- il semble que cela est plus long les lignes de ce que vous essayez de le faire:

jquery doc - closest()

Ce code devrait fonctionner:

alert($(this).closest(".somethingSpecial").html()); 

Ou dans le cas où votre $ (ce) est dans le 'startHere' div:

alert($(this).parent().closest(".somethingSpecial").html()); 
+0

il n'y a pas de nom d'identification quelque chose de spécial, je pense que vous voulez dire ".quelquechoseSpecial" – TStamper

+0

Oui, merci- j'ai mal lu le html dans la question. –

0

Je ne sais pas pourquoi les enfants ("div.somethingSpecial") ne fonctionne pas seul mais je viens de réaliser que cela fonctionne aussi:

alert($(this).parent().parent().children().filter("div.charactersLeft").html()); 
Questions connexes