如何在jquery中读取checkbox的值?

时间:2011-04-06 04:58:26

标签: javascript jquery

<li> 
<input type= "checkbox" name="paradigm" id="id_1" value="3"/> 
<label for="name_3">foo</label> 
</li> 

<li> 
<input type= "checkbox" name="paradigm" id="id_2" value="4"/> 
<label for="name_4">bar</label> 
</li> 

这是两个复选框。如果我选中了复选框id_1,则使用jquery我想要读取标签foo。如果我同时检查了它,那么它应该是['foo','bar']

4 个答案:

答案 0 :(得分:2)

$("input:checkbox:checked").map(function(){
    return $(this).next().text();   
}).get();

查看working demo

答案 1 :(得分:0)

试试这个:

var vSring = "";
$("input:checkbox[name='paradigm']").click(function(){

    if($("input:checkbox[name='paradigm']").filter(":checked").length==2)
    {
        vSring="";
        $("input:checkbox[name='paradigm']").each(function(){
            var vText = $(this).next().text();
            if(vSring=="")
                vSring = vText+",";
            else
                vSring = vSring+vText+",";    
        });
        alert(vSring);
    }
    else
    {
        if($(this).is(":checked"))
        {
            vSring="";
            vSring=$(this).next().text();
            alert(vSring);
        }
    }
});

CLICK HERE TO SEE THE DEMO

答案 2 :(得分:0)

var checkedLabels = [];
$(':checkbox').each(function() {
   if (this.checked) {
       var label = $('label[for="' + this.id + '"]').text();
       checkedLabels.push(label);
   }
});

答案 3 :(得分:0)

只要<label>元素紧跟其<input>元素,就可以执行以下操作:

var a = [ ];
$('input[name=paradigm]:checked').next('label').each(function() {
    a.push($(this).text());
});

更好的解决方案是在标签元素上设置正确的for属性(即确保它们与其复选框上的id属性相匹配)然后:

var a = [ ];
$('input[name=paradigm]:checked').each(function() {
    a.push($('label[for=' + this.id + ']').text());
});