检查标签值

时间:2013-07-29 17:08:26

标签: jquery

我已嵌套HTML标签&标签没有for=""属性的输入标签,因此我只能使用selecor轻松检查标签:

<ul id="categorychecklist" data-wp-lists="list:category" class="categorychecklist form-no-clear">       
    <li id="category-6" class="popular-category"><label class="selectit"><input value="6" type="checkbox" name="post_category[]" id="in-category-6"> Action</label></li>
    <li id="category-7" class="popular-category"><label class="selectit"><input value="7" type="checkbox" name="post_category[]" id="in-category-7"> Adventure</label></li>
</ul>

我想检查Label是否为“操作”或“冒险”,然后检查其复选框输入。

感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

$.trim($("li label").text())正是您要找的。这将在label中单独提供文本。要选中 冒险的复选框,您必须在标签/复选框上运行循环。我选择循环标签。

$("li label").each(function (i) {
    //check if text has Action or adventure
    //this is equivalent to if($.trim($(this).text() === "Action" || $.trim($(this).text() === "Adventure")
    var isTrue = ["Action", "Adventure"].indexOf($.trim($(this).text())) != -1
    //search for the checkbox and change its property
    $("[type=checkbox]", this).prop("checked", isTrue);
});

演示:http://jsfiddle.net/8w9SC/2/

答案 1 :(得分:1)

你可以用不同的方式做到,不确定你需要什么。

如果您点击复选框

$('input[type=checkbox]').on('change', function (e) {
    var value = $(e.target).val();
    var name = $.trim($(e.target).parent().text());
});

或者如果你只是运行代码来寻找它

$('li label').each(function () {
    var name = $.trim($(this).text()); //name of the label
    var value = $(this).closest('li').val(); //value of the input of that label
});

答案 2 :(得分:0)

假设您需要检查用户刚刚选中的复选框,这应该对您有用:

jsFiddle

<script type="text/javascript">
    $(document).ready(function() {

        $('[id^=in-category]').click(function() {
            var xx = $(this).parent().text();
            alert(xx);
            var yy = $(this).is(':checked') ? 1 : 0;
            alert(yy);
        });

    }); //END $(document).ready()
</script>