jquery – 父对最近

前端之家收集整理的这篇文章主要介绍了jquery – 父对最近前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么这样做:
$('.button_30').click(function(){
    $(this).closest('.portlet').find('.portlet_content').text("foo");
});​

任何为什么这不工作:

$('.button_30').click(function(){
    $(this).parent('.portlet').find('.portlet_content').text("foo");
});​

其中html看起来像这样:

<div class="portlet portlet_30">

    <div class="portlet_header portlet_header_30">
        header content here
    </div>

    <div class="portlet_sub_header portlet_sub_header_30">
        <input type="text" class="textBox_30" />
    </div>

    <div class="portlet_content portlet_content_30">
        results go here
    </div>

    <div class="portlet_footer portlet_footer_30">
        <input type="button" class="button_30" />
    </div>

</div>

<div class="portlet portlet_30">

    <div class="portlet_header portlet_header_30">
        header content here
    </div>

    <div class="portlet_sub_header portlet_sub_header_30">
        <input type="text" class="textBox_30 />
    </div>

    <div class="portlet_content portlet_content_30">
        results go here
    </div>

    <div class="portlet_footer portlet_footer_30">
        <input type="button" class="button_30" />
    </div>

</div>

解决方法

因为 parent()将仅在与指定的选择符匹配时才返回父(立即祖先)。

但是,closest()搜索所有祖先并返回与选择器匹配的第一个。

由于button_30的父项是一个div,其父对象是具有portlet类的div,因此parent()函数不匹配,返回一个空集合,其中,最近的()与之匹配。

要完成这个类似的方法,你有parents(),就像nearest(),但不停在第一个匹配的元素;它返回与选择器匹配的所有祖先。

原文链接:https://www.f2er.com/jquery/182797.html

猜你在找的jQuery相关文章