2012-06-06 3 views
0

J'ai le code ci-dessous et il fonctionne, mais quelle est la bonne façon d'obtenir la table ajouter onclick deDroit chemin pour obtenir les enfants

HTML

<div> 
    <h4 class="titlebar"> 
     Skills 
     <small><a onclick="return false;" href="/add/" data-span="3">Add</a></small> 
    </h4> 

    <div class="body"> 
     <table class="table"> 
      <tbody> 
       <tr><td width="125"></td></tr> 
      </tbody> 
     </table> 
    </div> 
</div> 

JQuery

var TableBlock = $(this).closest('.titlebar').next().children('table'); 

this points à Ajouter au lien

+0

Non, il n'y a pas de gestionnaire de clic? – Bergi

+0

Qu'est-ce que c'est? –

+0

Donnez-nous un HTML complet, ou au moins, le parent '

'. – gdoron

Répondre

3

Vous n'avez pas mentionné qui est le parent de <div class="body"> et <h4 class="titlebar"> ce qui est critique.

$(this).closest('table-parent(the missing parent)').find('table'); 

find est mieux que childern parce qu'elle fonctionnera même si la table s'imbriquée dans le développement futur.

Si vous ne souhaitez que la première table matched:

.find('table').first(); 
//Or 
.find('table:first'); 

Mise à jour: Sur la base de votre mise à jour de question, je voudrais ajouter au parent div une classe ou un id:

<div class="parent" > 
    <h4 class="titlebar"> 
    ... 

Ensuite:

$(this).closest('div.parent').find('table'); 

Si vous ne pouvez pas modifier le DOM:

$(this).closest('h4.titlebar').parent().find('table'); 

Ou:

$(this).closest('h4.titlebar').siblings('.body').find('table'); 
+0

Il a dit à la première ligne 'onclick of add' ce qui signifie que' this' est l'ancre dans 'h4' si je ne me trompe pas. –

+0

@Joy. Peut-être, mais il n'y a pas de gestionnaire de clic pour cela. Mais tu as probablement raison. de toute façon, le parent manquant est plus critique. – gdoron

+0

@gdoron joie est juste que j'ai mis à jour la question. Maintenant, mon doute est, est assez intelligent pour aller chercher le premier. Dans votre cas si j'ai des tables imbriquées ce qui se passera – aWebDeveloper

Questions connexes