【问题标题】:Does Jquery Automatically Check Every Element of An Array for is() method?Jquery 是否自动检查数组的每个元素的 is() 方法?
【发布时间】:2011-04-08 09:05:24
【问题描述】:

我有一个 div,该 div 里面有很多复选框。我想知道他们是否都没有检查。我有这样的代码:

$("#profileAssistPopUp [type='checkbox']").is('checked') 

这返回给我的是他们中的任何一个,否则不是。首先我想知道那个代码行是真的吗?

我的第二个也是主要问题是

$("#profileAssistPopUp [type='checkbox']")

返回一个数组。为数组编写.is('checked') 是如何工作的? Does it automatically checks every element of it and does mean if any of them checked an array is checked or not?

我的最后一个问题是,我怎样才能将代码中的 not 写成如下:

$("#profileAssistPopUp [type='checkbox']").is('not:checked') //This is not working

PS:我还没有对其进行足够的测试,但我认为它有时有效,有时无效?

【问题讨论】:

  • 为什么你对所有的复选框都使用 id 'profileAssistPopUp',我不明白。我更喜欢 name 属性甚至是一个类。然后使用 $('input[type=checkbox][name=profileAssistPopUp]') 选择

标签: javascript jquery arrays


【解决方案1】:

使用

$("#profileAssistPopUp [type='checkbox']").is(':checked')

现在第三个使用

$("#profileAssistPopUp [type='checkbox']").not(':checked')

对于第二个:它使用您的选择过滤数组。 可以自己看,去这个链接:http://code.jquery.com/jquery-latest.js 发现是:

你也可以用这个

$("#profileAssistPopUp [type='checkbox']").not(':checked').length > 0 

【讨论】:

  • $("#profileAssistPopUp [type='checkbox']").is(':checked') 有效。它返回 true 或 false 但 $("#profileAssistPopUp [type='checkbox']").not(':checked') 返回未选中元素的数组。还有 $("#profileAssistPopUp [type='checkbox']").is(':not(:checked)') 总是为我返回 true?
  • 我也尝试了 $("#profileAssistPopUp [type='checkbox']").is('checked') 并且每次即使选中其中一个,它都会给出 false。
  • 您可以使用 $('input[type=checkbox][name=profileAssistPopUp]').not(':checked').length 来检测可能未检查的方式和最后一个 $( "#profileAssistPopUp [type='checkbox']").is(':not(:checked)') 是错误的,所以我把它从我的答案中删除了。
  • 你使用的是 is('checked') 不是 is(':checked') ,你缺少 ':'
【解决方案2】:

来自 jQuery 文档:

根据选择器检查当前匹配的元素集,如果至少有一个这些元素与选择器匹配,则返回 true。

来源 - http://api.jquery.com/is/

如果选中一个或多个复选框,您的函数将返回 true。如果您需要确保它们都被检查,则需要使用 $.each 遍历匹配的元素并单独检查每个元素。

另外,正确的选择器应该是:

$("#profileAssistPopUp [type=checkbox]").is(':checked')

【讨论】:

    猜你喜欢
    • 2014-10-20
    • 2011-07-11
    • 2022-01-20
    • 2014-06-28
    • 1970-01-01
    • 2022-01-02
    • 2017-12-27
    • 1970-01-01
    • 2011-09-14
    相关资源
    最近更新 更多