我已嵌套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是否为“操作”或“冒险”,然后检查其复选框输入。
感谢任何帮助。
答案 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);
});
答案 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)
假设您需要检查用户刚刚选中的复选框,这应该对您有用:
<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>