2010-05-26 3 views
0

je la structure suivante:Prototype - DOM Traversal avec haut()

<form> 
    <div class="content"> 
     ... 
    </div> 
    <div class="action"> 
     <p>Select <a class="select_all" href="?select=1" title="Select All">All</a></p> 
    </div> 
</form> 

J'utilise le haut de Prototype() pour traverser le DOM afin de trouver l'élément <form> en ce qui concerne la a.select_all. Cependant, ce qui suit ne fonctionne pas:

select_link.up('form'); // returns undefined 

Pourtant, cela fonctionne. Il s'agit clairement d'un ancêtre de a.select_all. L'état API Docs Element.up() prend en charge une règle CSS. Qu'est-ce que j'oublie ici?

+0

La fonction 'up' fonctionne exactement comme annoncé, vous devez faire autre chose de mal. Des erreurs sur la page? – adamJLev

+0

@Infinity. Pas d'autres erreurs. J'avoue que je peux avoir quelque chose de mal, mais peut-être que vous pouvez fournir plus de suggestions. @Pointy 'var select_link = e.element();'. J'ai lié la fonction en tant qu'écouteur d'événement. 'e' intervient comme premier argument. C'est un truc plutôt standard. Comme vous l'avez dit, il est étrange que les enchaînements fonctionnent. –

Répondre

0

Est-ce que vous avez utilisé un code comme ceci:

var select_link = $$('.select_all').first() 

pour obtenir les DOM-Objet du lien?

+0

'$$ (base + '.select_all', base + '.select_none'). Invoke (" observer "," cliquer ", toggle_checkboxes.bindAsEventListener (this))' –