将 find() 链接到 val()



有没有办法将find()链接在val()之后?

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

$('#some-selector')
    .find(':input')
    .val('')
    .find('.required')
    .prop('required', someBoolean);

从jQuery文档中可以明显看出val()返回一个字符串,数字或数组。在我看来,find()不会在这个返回值上运行,因为我相信它需要一个 jQuery 对象。

所以有几个问题:

  1. 我在jQuery理解方面的差距在哪里,以至于我试图将find()链接到val()
  2. 我将如何完成我的要求:我想清除所有输入并在具有类.required的输入上切换所需的输入。

谢谢!

问题不在于链接,而在于您重复使用find()

第一个find()检索所有:input元素并清除其值,这很好。但是,第二个find()然后在所有这些input元素搜索.required。这不能有效,因为input不能有子元素(select 除外,但这不适用于这种情况(。

相反,您需要在当前集合中搜索类为 required 的元素。为此,请改用filter()

$('#some-selector')
  .find(':input').val('')
  .filter('.required').prop('required', someBoolean);

相关内容

  • 没有找到相关文章

最新更新