【问题标题】:jQuery selector for a checkbox that contains certain text in its name attribute用于在其名称属性中包含某些文本的复选框的 jQuery 选择器
【发布时间】:2012-07-06 04:18:01
【问题描述】:

我试图在 jQuery 中找到一个选择器,它选择所有作为复选框的输入,并且它们的名称包含特定的单词,例如“top”或“Top”。在选择其他复选框时遇到问题。

是否可以使用类似的东西:

$("input[name*='top'] type:checkbox").each etc?

Top 1<input type="checkbox" name="Top1" /><br />
Top 2<input type="checkbox" name="Top2" /><br />
Top 3<input type="checkbox" name="Top3" /><br />
Top 4<input type="checkbox" name="Top4" /><br />

Bottom 1<input type="checkbox" name="Bottom1" /><br />
Bottom 2<input type="checkbox" name="Bottom1" /><br />
Bottom 3<input type="checkbox" name="Bottom1" /><br />
Bottom 4<input type="checkbox" name="Bottom1" /><br />

我只想选中名称中包含“top”一词的复选框。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    你很亲密……

    $("input[type='checkbox'][name^='Top']").each()
    

    jsFiddle Demo

    【讨论】:

    • 认为这些选择器是区分大小写的,不是吗?
    • 所以我只添加了两个框选择器?并且 ^='Top' 转换为 Top 还是 top?
    • @MarkK 只是另一个注释,不区分大小写可以使用.filter()
    • @RetroCoder 区分大小写。如果你写^='Top',它将匹配Top,但不匹配top
    • @bažmegakapa 演示总是有帮助,谢谢注意:*='Top' 也是区分大小写的(我不知道)
    【解决方案2】:

    你可以使用start with选择器:

    $("input[name^='Top']")
    

    或:

    $("input[name^='Top']:checkbox")
    

    【讨论】:

    • 请注意:checkbox 已弃用。
    【解决方案3】:

    我相信您可以将:checkbox 选择器和attribute-contains 选择器结合起来:

    $("input:checkbox[name*='top']").each(); 
    

    不确定是否需要不区分大小写,在这种情况下,您可以查看SO question

    更新:

    正如 bažmegakapa 在他的评论中指出的那样,:checkbox 选择器根据文档已被弃用。因此最好使用:

    $("input[type=checkbox][name*='top']").each();
    

    【讨论】:

    • 来自手册:The bare $(':checkbox') is equivalent to $('*:checkbox'), so $('input:checkbox') should be used instead.
    • 我投了赞成票。此外,:checkbox 已被弃用,因此使用[type="checkbox"] 可能会更好。
    猜你喜欢
    • 2012-07-05
    • 1970-01-01
    • 2011-02-08
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多