使用JQuery获取ListItem值

问题描述 投票:1回答:1

我正在尝试使用JQuery来获取无序列表中ListItems的值(请参见下文)。下面的代码接近工作,但即使选中了第二个ListItem,它始终返回第一个ListItem的值。

<script>
    $(document).ready(function () {
        $("li").click(function () {
            $("input:checked").each(function () {
                alert($("label").attr('InnerText'));
            });
        });
    });
</script>

<div>
    <ul class="AspNet-CheckBoxList-RepeatDirection-Vertical">
        <li class="AspNet-CheckBoxList-Item">
            <input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1$0" value="first1" />
            <label for="CheckBoxList1_0">First $30.00</label>
        </li>
        <li class="AspNet-CheckBoxList-Item">
            <input id="CheckBoxList1_1" type="checkbox" name="CheckBoxList1$1" value="second2" />
            <label for="CheckBoxList1_1">Second $25.00</label>
        </li>
    </ul>
</div>
jquery listitem
1个回答
8
投票

在每个回调中,您并没有限制选择器的范围,它只是抓住了在调用.attr时找到的第一个标签。尝试类似以下的内容...

$("input:checked").each(function() {
    $(this).next("label").text(); //Or
    $(this).parent().find("label").text(); //Depending on your markup
});

这将选择器的作用域设为复选框周围的元素,而不是整个文档的范围

© www.soinside.com 2019 - 2024. All rights reserved.