仅为选中其复选框的输入获取标签名称

时间:2014-02-12 10:46:10

标签: javascript jquery jquery-mobile

我有一个像下面这样的字段集

<div class="ui-field-contain">
<fieldset id="fieldstep1" data-role="controlgroup">
    <legend>Choose Sections:</legend>
    <input name="checkbox-1a" id="checkbox-1a" type="checkbox">
    <label for="checkbox-1a">Morning</label>
    <input name="checkbox-2a" id="checkbox-2a" checked  type="checkbox">
    <label for="checkbox-2a">Evening</label>
    <input name="checkbox-3a" id="checkbox-3a" checked type="checkbox">
    <label for="checkbox-3a">Night</label>
    <input name="checkbox-4a" id="checkbox-4a" checked type="checkbox">
    <label for="checkbox-4a">Snacks</label>
</fieldset>
</div>         

我需要获取已选中Checkbox的所有标签名称。

右键我使用此代码。这将返回所有标签名称。

$('#fieldstep1').find('label').each(function(){
var a = $(this).text();
alert(a);
});

这是Js小提琴 - http://jsfiddle.net/sGy38/

2 个答案:

答案 0 :(得分:1)

尝试

$('#fieldstep1 input:checkbox:checked + label').each(function(){
var a = $(this).text();
alert(a);
});

演示:Fiddle


检查演示站点后:

$('#fieldstep1 input:checkbox:checked').prev().each(function () {
    var a = $(this).text();
    console.log(a);
});

答案 1 :(得分:1)

你可以这样做:

$('#fieldstep1').find('label').each(function () {
    if ($('#' + $(this).attr('for')).is(':checked')) {
        var a = $(this).text();
        alert(a);
    }
});

说明:对于每个标签$('#' + $(this).attr('for')),获取标签的复选框,.is(':checked')检查是否已选中。

请参阅更新后的fiddle