jQuery选中复选框兄弟文本

时间:2014-04-07 08:38:57

标签: javascript jquery

如果勾选了复选框,我希望从以下html返回一串标签文字:

<ul id="mainList" class="checkboxlist">
    <li class="checkboxlist-item">
        <input type="checkbox" id="Categories_0" value="ff2db3bf-479e-4b3a-a2e4-a27d00bbc038" name="Categories.SelectedIds"  />
        <label for="Categories_0">Arts/Culture</label>
    </li>
    <li class="checkboxlist-item">
        <input type="checkbox" id="Categories_1" value="0a46de03-84f7-4a66-abe9-a22200cc6dc4" name="Categories.SelectedIds"  />
        <label for="Categories_1">Beauty</label>
    </li>
    <li class="checkboxlist-item">
        <input type="checkbox" id="Categories_2" value="cf4fc161-a195-4e3e-9262-a22200cc5650" name="Categories.SelectedIds"  />
        <label for="Categories_2">Business</label>
    </li>
    <li class="checkboxlist-item">
        <input type="checkbox" id="Categories_3" value="a119f0a9-2cf6-4c7c-a25c-a29001179f64" name="Categories.SelectedIds"  />
        <label for="Categories_3">Car/Motoring</label>
    </li>
</ul>

使用#mainList非常重要,如果输入类型复选框为true,则返回标签文本。

谢谢

2 个答案:

答案 0 :(得分:5)

您可以使用.map()来获取文本数组

var array = $('#mainList input:checked').next().map(function(){
    return $(this).text();
}).get();
  • #mainList input:checked获取#mainList
  • 下的已检查输入元素集
  • .next()获取集合中每个元素的下一个元素 - 本例中为label
  • .map(...) .get()将元素集转换为数组

答案 1 :(得分:1)

试试这个

$('#mainList input').on('change', function () {
    if ($(this).is(':checked'))
      alert($(this).next('label').text())
});

DEMO