jQuery找到两种类型的子元素

时间:2017-05-23 13:27:35

标签: jquery traversal

我有一个复选框,用于切换<section>

下的元素

我正在尝试将readonly应用于输入,将readonly应用于选择和按钮,如何在jQuery语句中实现?

如何使用相同的选择器两次制作jQuery find

        $(this).parents('section')
            .eq(0)
            .find('input') <-- found all the inputs under <section>
            .not('.cloud-media-toggle-inputs')
            .prop('readonly', ! isChecked )
            .find('select, button') <-- now I want to find all the <select>/<button> under <section>
            .prop('disabled', ! isChecked );

1 个答案:

答案 0 :(得分:3)

您需要使用.end()

  

结束当前链中最近的过滤操作,并将匹配元素集返回到先前的状态。

    $(this).parents('section')
        .eq(0)
        .find('input')
        .not('.cloud-media-toggle-inputs')
        .prop('readonly', !isChecked )
        .end() //<===========
        .find('select, button') 
        .prop('disabled', !isChecked );

或者,不要使用链接

var sectionFirstChild = $(this).parents('section').eq(0);
sectionFirstChild.find('input:not(.cloud-media-toggle-inputs)').prop('readonly', !isChecked);
sectionFirstChild.find('select, button').prop('disabled', !isChecked);