【问题标题】:Get checkbox with specific value获取具有特定值的复选框
【发布时间】:2012-06-11 09:40:53
【问题描述】:

我想获取具有特定值的复选框并使其选中..

我是这样的

$(":checkbox").filter({"value":5}).attr("checked","true");​

这里是html

​<input type="checkbox" name="priv"​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ value="1"​​​​​​​​​​​​​​​​​/>
<input type="checkbox" name="priv" value="2"/>
<input type="checkbox" name="priv" value="3"/>
<input type="checkbox" name="priv" value="4"/>
<input type="checkbox" name="priv" value="5"/>
<input type="checkbox" name="priv" value="6"/>
<input type="checkbox" name="priv" value="7"/>
 <input type="checkbox" name="priv" value="8"/>​

这是问题的demo

【问题讨论】:

    标签: jquery checkbox


    【解决方案1】:

    您可以使用Attribute Equals Selector [name="value"] 来获取具有特定值的复选框。也使用prop() 而不是attr(),这是jQuery doc 推荐的方式。

    Live Demo

    $(":checkbox[value=4]").prop("checked","true");
    

    $("input[type=checkbox][value=5]").prop("checked",true);
    

    说明:选择具有指定属性且值与某个值完全相等的元素,jQuery doc

    你也可以使用 attr() 但 prop 更适合布尔属性。

    $(":checkbox[value=4]").attr("checked","true");
    

    从 jQuery 1.6 开始,.attr() 方法返回未定义的属性 尚未设置。检索和更改 DOM 属性,例如 表单元素的选中、选择或禁用状态,使用 .prop() 方法,jQuery doc

    编辑,在 cmets 中询问,“具有复杂值的答案/查找表达式看起来如何,例如 value="Smith, David"

    您可以将像 Smith, David 这样的值用单引号括起来。您甚至可以使用 jQuery 使用的字符,例如 #、.、$ 等,请参阅更新的小提琴 here

    $("input[type=checkbox][value='#Smith, David$']").attr("checked","true");
    

    【讨论】:

    • 偷了我半个小时:第二个代码示例中的分号有点邪恶。当您复制整行 ($("input[type=checkbox][value=5]").prop("checked",true);) 并将其粘贴到脚本中时,SublimeText + JSHint(在我的情况下)将抛出错误“意外”。浏览器停止执行您的代码,并出现错误“Unexpected token ILLEGAL”。删除分号并用“新”替换它对我有帮助(想象一下我的调试绝望......)我猜有一个隐藏的 ascii-char 或 sth
    • 编辑:抱歉重复发帖:vim 向我展示了额外的小字符:$("input[type=checkbox][value=5]").prop("checked",true);&lt;200b&gt;
    • 很抱歉,声明中的隐藏字符让您如此困扰。我分析、追踪并删除了它。感谢您的指点,因为它可以节省其他人的时间。
    • 我找到了代码为 8203 的字符,你可以在这里找到更多。 stackoverflow.com/questions/2973698/…
    • value="Smith, David" 之类的复杂值的答案/查找表达式看起来如何?
    【解决方案2】:
    $(":checkbox").filter(function() {
      return this.value == '5';
    }).prop("checked","true");​
    

    DEMO

    如果您想将其用于不同的值,请使其通用,如下所示:

    function checkWithValue(val) {
        $(":checkbox").filter(function() {
            return this.value == val;
        }).prop("checked", "true");
    }
    
    
    checkWithValue(5);​
    

    DEMO

    【讨论】:

      【解决方案3】:
      $("input:checkbox[value='5']").attr("checked","true")
      

      【讨论】:

        【解决方案4】:

        我有一个需要循环的动态值。这对我有用:

        for (var i = 0, len = value.length; i < len; i++) {
          $("#form-name").find("input[type=checkbox][name='fName']").filter(function () {
            return this.value == values[i];
          }).prop("checked", true);
        }
        

        希望对某人有所帮助。

        【讨论】:

          【解决方案5】:

          它也适用于方形练习

           $(":checkbox").filter(["value":5]).prop("checked","true");
          

          【讨论】:

            【解决方案6】:

            有时我们希望动态获取特定值的复选框。

            $(document).on('click','.at-filter a', function(){
                var aaa = $(this).parent().find("em").html();
                $("input[type=checkbox][value='"+aaa+"']").prop('checked',false)
            });
            

            【讨论】:

              【解决方案7】:
              $(":checkbox[value=5]").attr("checked",true);​​​
              

              【讨论】:

                【解决方案8】:
                $("#catalogTBL").find("input[type=checkbox][value='snet']").prop("checked", true);
                

                这是我可以让它工作的唯一方法。在表格中查找复选框。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-07-11
                  • 1970-01-01
                  • 2011-07-23
                  • 1970-01-01
                  相关资源
                  最近更新 更多