【问题标题】:How to update ("check") a specific checkbox in jquery without nesting the find? [duplicate]如何在不嵌套查找的情况下更新(“检查”)jquery中的特定复选框? [复制]
【发布时间】:2016-03-24 06:59:53
【问题描述】:

找到元素是一回事,更新一个特别索引的元素是这里的问题。

给定一组三个复选框的基本 HTML,例如

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
Test!!!!!
<input name='cars' type='checkbox' value="primary" checked/>
<input name='cars' type='checkbox' value="secondary"/>
<input name='cars' type='checkbox' value="tertiary"/>
</body>
</html>

我可以使用 jquery 来选择所有的复选框

$("input").prop( "checked", true );

但是,我怎样才能只定位一个复选框,例如中间的一个?

我试过了

$("input")[1].prop( "checked", true );

但我得到prop is not a function

$("input")[1].prop( "checked", true ); 返回 [] 不变。

看起来我找到了一个嵌套查找的选项,例如

$($("input")[1]).prop( "checked", true );

还有比这更干净的方法吗?

【问题讨论】:

    标签: jquery html checkbox


    【解决方案1】:

    你必须在这种情况下使用.eq(index)

    $("input").eq(1).prop( "checked", true );
    

    如果您使用括号表示法,那么它将返回普通节点对象。而且它的原型中没有一个名为.prop() 的函数。所以这不起作用,会导致错误。

    还有这个嵌套$($("input")[1]).prop( "checked", true );。它之所以有效,是因为$(nodeObject) 将被转换为一个 jquery 对象,因此您可以通过它访问 jquery 函数,如 prop()

    【讨论】:

    • 确认,这行得通。
    【解决方案2】:

    你可以使用nth-of-type选择器

    $("input:nth-of-type(2)").prop( "checked", true );
    

    【讨论】:

    • 是的,这也有效。
    【解决方案3】:

    刚刚发现一个选项是针对"input" 选择器的第一个实例([1])使用.checked = false,即

    $("input")[1].checked = false;
    

    【讨论】:

      猜你喜欢
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2011-10-14
      • 1970-01-01
      • 2021-11-25
      相关资源
      最近更新 更多