jQuery multiple parent() calls

2020-02-06 02:38发布

问题:

I have this jQuery:

$(this).parent().parent().find(".license_tooltip").stop(true, true).fadeIn(200);

The $(this) object is nested within two divs like this:

<div>
    <div>
        <a href="">$(this) object</a>
    </div>

    <div>
        <a href="">object to fade in</a>
    </div>
</div>

Can someone point me in the right direction to making my jQuery more streamlined? The structure presented above is replicated multiple times, so using classes and IDs is impossible.

回答1:

You can use a class (or any other selectable attribute) and .closest() to claim to the parent you want, like this:

<div class="container">
    <div>
        <a href="">$(this) object</a>
    </div>

    <div>
        <a href="">object to fade in</a>
    </div>
</div>

And for the script:

$(this).closest(".container").find(".license_tooltip").stop(true, true).fadeIn(200);


回答2:

You could use the .parents( [ selector ] ) here is a link

It will traverse more than one parent up.



回答3:

use parents()

$(this)
    .parents('selector for the parent you need to look in')
    .find(".license_tooltip")
    .stop(true, true)
    .fadeIn(200);