链接find()到val()

dtb*_*ess 2 javascript jquery jquery-chaining

有没有办法连锁find()追随val()

例如,给定以下代码,我想清除所有输入的值,但只切换required具有以下类的输入的属性.required:

$('#some-selector')
    .find(':input')
    .val('')
    .find('.required')
    .prop('required', someBoolean);
Run Code Online (Sandbox Code Playgroud)

jQuery文档中可以看出,它val()返回一个字符串,数字或数组.对我来说似乎find()不会对此返回值起作用,因为我认为它需要一个jQuery对象.

所以有几个问题:

  1. 我在jQuery理解方面的差距在哪里,我试图链接find()val()
  2. 我将如何完成我的要求:我想清除那些有课程的人所需的所有输入和切换.required.

谢谢!

Ror*_*san 7

问题不在于链接,而是你的反复使用find().

第一个find()检索所有:input元素并清除它们的值,这很好.然而,第二个find()所有这些input元素搜索.required.这不能有效,因为input不能有子元素(除了select,但在这种情况下不适用).

您需要在当前集合中搜索具有类的元素required.为此,请使用filter():

$('#some-selector')
  .find(':input').val('')
  .filter('.required').prop('required', someBoolean);
Run Code Online (Sandbox Code Playgroud)