【问题标题】:Using jQuery to iterate across like named checkboxes使用 jQuery 遍历类似命名的复选框
【发布时间】:2011-01-10 04:50:48
【问题描述】:

我正在尝试使用 jQuery each() 来遍历一组名为 supplier_type[] 的复选框。它们都有唯一的 id,所以我可以重写它来处理一组唯一的 id,但我想弄清楚我在哪里出错了。

警报显示,虽然 intIndex 看到正确数量的元素 this 始终包含第一个元素。

function setUp(){
    $( 'input[name=supplier_type[]]' ).each(
        function( intIndex ){
            var type = $(this+':checked').val() + 'Table';
            $("#"+type).show("slow");
            alert($(this+':checked').val());  // sees first one each iter
        }       
    );
}

那么我该如何处理正确的元素呢?我需要使用 bind() 吗?

谢谢!

// 编辑 基于 Drew Wills 响应的工作版本。谢谢德鲁!

function setUp(){
    $( 'input[name=supplier_type[]]' ).each(
        function( intIndex ){
            if($(this).attr('checked')) {
                var type = $(this).val() + 'Table';
                $("#"+type).show("slow");
            }
        }       
    );
}

【问题讨论】:

    标签: jquery each


    【解决方案1】:

    我不确定我是否 100% 理解您的问题,但我非常怀疑以下选择器样式:

    $(this+':checked')
    

    我猜你想知道'checked'属性的值,这更像是......

    $(this).attr('checked')
    

    【讨论】:

    • 感谢您的回复。我在滥用这个吗? api.jquery.com/checked-selector
    • ':checked' 选择器匹配被检查的实例,它不会告诉你给定的实例是否被检查。如果你做 alert(this+':checked') 你会得到什么?我很惊讶这个串联的字符串完全匹配任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多