Y at-il un sélecteur jQuery / méthode pour trouver un élément parent spécifique n niveaux jusqu'à?

StackOverflow https://stackoverflow.com/questions/699027

Question

Considérez le code HTML suivant. Si j'ai une référence JSON à la touche <> élément, comment puis-je obtenir une référence à l'élément extérieur dans les deux cas

<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>

Je sais que je pourrais cas particulier chaque condition, mais je suis plus intéressé « mais vous arrive d'être profond, grimper sur l'arbre jusqu'à trouver l'élément X » solution de style. Quelque chose comme ça, mais plus comme jQuery / moins bavard

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);
    }
};  

Je sais que sur la méthode parent (expr), mais de ce que j'ai vu est vous permet filtrer les parents d'un niveau et ne pas monter l'arbre jusqu'à ce que vous trouverez expr (j'aimerais exemple de code me prouver tort)

Était-ce utile?

La solution

La fonction de parents de la

$(this).parents("tr:first");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top