选中复选框后,我会显示一个表格。如果表单被取消,我希望取消选中此框。
修改
在表格表格(第二个表格)上,滚动到复选框并选中一个,然后转到第一个表格并单击取消按钮。向下滚动到您选中的框。
在HTML中,我定义:
<input id="current-checkbox" type="checkbox" class="hidden" />
在关联的JS中我保存当前位置:
var curRow = $(this).closest('.trow').find('input[type=checkbox]');
$("#current-row",curRow);
console.log显示:
$("#current-checkbox")
[<input id="current-checkbox" type="checkbox" class="hidden">]
取消表格JS:
$("#cancel-email").on('click', function (e) {
debugger
e.preventDefault();
setTimeout(function () { showMessage(1, 'Emails not sent.') }, 2000);
setTimeout(function () { hideEmailElems(); }, 2000);
$("#current-checkbox").find("input[type=checkbox]").prop("checked", false).focus();
});
的console.log:
$("#current-checkbox").find("input[type=checkbox]").length
0
找到保存复选框的正确jQuery选择器是什么?
答案 0 :(得分:2)
$("#current-checkbox")
只选择一个元素(即复选框),因为它是id的选择器。
find(selector)
方法找到与匹配元素中的选择器匹配的子元素,因此在这种情况下$("#current-checkbox").find("input[type=checkbox]")
为空,因为该复选框元素没有任何子元素元件。
因此,您不会需要.find()
部分。 $("#current-checkbox")
就足够了。
请注意,在有效的HTML中,the id attribute必须唯一。因此,id选择器最多匹配一个元素。
如何保存对表格行中复选框的引用?
您不需要保存对已选中复选框的引用。您可以使用:checked
选择器从任何地方查找它。
$("#cancel-email").on('click', function(e) {
// Un-check the checked checkbox
$(".trow input[type=checkbox]:checked").prop("checked", false);
// Hide the E-Mail box
$('#main-container').hide();
});