Javascript 将find()链接到val()
有没有办法在Javascript 将find()链接到val(),javascript,jquery,jquery-chaining,Javascript,Jquery,Jquery Chaining,有没有办法在val()之后链接find() 例如,给定以下代码,我想清除所有输入的值,但只切换类为.required的输入的required属性: $('#some-selector') .find(':input') .val('') .find('.required') .prop('required', someBoolean); 从中可以明显看出,val()返回字符串、数字或数组。在我看来,find()不会对这个返回值起作用,因为我认为它需要一个jQue
val()
之后链接find()
例如,给定以下代码,我想清除所有输入的值,但只切换类为.required
的输入的required
属性:
$('#some-selector')
.find(':input')
.val('')
.find('.required')
.prop('required', someBoolean);
从中可以明显看出,val()
返回字符串、数字或数组。在我看来,find()
不会对这个返回值起作用,因为我认为它需要一个jQuery对象
所以有几个问题:
find()
链接到val()
.required
的输入上切换required谢谢大家! 问题不在于链接,而在于重复使用
find()
第一个find()
检索所有:输入元素并清除它们的值,这很好。然而,第二个find()
正在所有那些输入
元素中搜索.required
。这不能有效,因为输入
不能有子元素(除了选择
,但在这种情况下不适用)
相反,您需要在当前集合中搜索类为required
的元素。为此,请改用filter()
:
$('#some-selector')
.find(':input').val('')
.filter('.required').prop('required', someBoolean);
我认为你的逻辑是有缺陷的,输入不能有任何子项,因此你不能对它们执行。查找