有没有办法将find()
链接在val()
之后?
例如,给定以下代码,我想清除所有输入的值,但只切换具有.required
类的输入的 required
属性:
$('#some-selector')
.find(':input')
.val('')
.find('.required')
.prop('required', someBoolean);
从jQuery文档中可以明显看出val()
返回一个字符串,数字或数组。在我看来,find()
不会在这个返回值上运行,因为我相信它需要一个 jQuery 对象。
所以有几个问题:
- 我在jQuery理解方面的差距在哪里,以至于我试图将
find()
链接到val()
- 我将如何完成我的要求:我想清除所有输入并在具有类
.required
的输入上切换所需的输入。
谢谢!
问题不在于链接,而在于您重复使用find()
。
第一个find()
检索所有:input
元素并清除其值,这很好。但是,第二个find()
然后在所有这些input
元素中搜索.required
。这不能有效,因为input
不能有子元素(select
除外,但这不适用于这种情况(。
相反,您需要在当前集合中搜索类为 required
的元素。为此,请改用filter()
:
$('#some-selector')
.find(':input').val('')
.filter('.required').prop('required', someBoolean);