/ / Existuje jQuery selektor / metóda na nájdenie špecifického rodičovského elementu n úrovne? - javascript, jquery, dom, jquery-selectors

Existuje voľba / metóda jQuery na nájdenie špecifického rodičovského elementu? - javascript, jquery, dom, jquery-selectors

Zoberme si nasledujúci HTML. Ak mám referenciu JSON na prvok <button>, ako môžem získať odkaz na vonkajší prvok <tr> v oboch prípadoch

<table id="my-table">
<tr>
<td>
<button>Foo</button>
</td>
<td>
<div>
<button>Bar</button>
</div>
</td>
</tr>
</table>

<script type="text/js">
$("#table button").click(function(){
//$(this).parent().parent() will work for the first row
//$(this).parent().parent().parent() will work for the second row
//is there a selector or some magic json one liner that will climb
//the DOM tree until it hits a TR, or do I have to code this myself
//each time?
//$(this).????
});
</script>

Viem, že by som mohol mať zvláštny prípad každej podmienky, aleMám väčší záujem, akokoľvek hlboko sa stanete, stúpajte na strom, kým nenájdete riešenie štýlu X. Niečo také, ale viac jQuery ako / menej verbose

var climb = function(node, str_rule){
if($(node).is(str_rule)){
return node;
}
else if($(node).is("body")){
return false;
}
else{
return climb(node.parentNode, str_rule);
}
};

Viem o metóde rodiča (expr), ale z toho, čo som videl, je to, že ste rodičia filtrovali jednou úrovňou nahor a NEPOLIŤ strom, kým nenájdete vysvetlenie (I love code example,

odpovede:

90 pre odpoveď č. 1

Na rodičia Funkcia robí, čo chcete:

$(this).parents("tr:first");

41 pre odpoveď č. 2

Tiež, ak používate jQuery 1.3 môžete použiť najbližšej metóda

$(this).closest("tr");

0 pre odpoveď č. 3

nie jQuery, ale to funguje oveľa lepšie možnosti

node.contains (otherNode)

Metóda Node.contains() vráti Boolovská hodnota označujúca, či uzol je potomok daného uzla alebo nie

https://developer.mozilla.org/en/docs/Web/API/Node/contains