这是我的第一个问题,如果我做错了,请告诉我。无论如何,我想要做的是,在文档完成后,检查是否检查了任何复选框,然后淡化那些段落元素,如下面最里面的代码所示。就实际执行fadeTo的代码而言,我知道它是正确的,因为我在代码的另一部分中使用它。而且我知道它至少找到了一个已检查的元素,因为我得到了下面代码中显示的“警报”。但是,相关元素不会褪色。有什么建议吗?
其他信息:当我查看源代码时,在html中正确检查了复选框(根据我的应用程序的其余部分)。复选框是asp.net。
$(document).ready(function () {
if ($("input[type='checkbox']:checked").length > 0) {
$(this).closest('p').fadeTo('mid', '0.25')
$(this).closest('p').children().fadeTo('mid', '0.25')
$(this).closest('p').next().children('li').fadeTo('mid', '0.25')
alert("It worked.")
};
});
答案 0 :(得分:4)
dom ready处理程序this
内部引用document
对象。
从我所看到的,您正在尝试定位已选中复选框的祖先元素(p
)以及与其相关的其他几个元素。
首先,您需要获取可以使用p
的{{1}}元素,然后找到与这些元素相关的其他元素。
$("input[type='checkbox']:checked").closest('p')
答案 1 :(得分:0)
原始代码很可能没有检查.length
,但在集合上调用了.each()
..
$(document).ready(function () {
$("input[type='checkbox']:checked").each(function() { // only this line was altered
$(this).closest('p').fadeTo('mid', '0.25')
$(this).closest('p').children().fadeTo('mid', '0.25')
$(this).closest('p').next().children('li').fadeTo('mid', '0.25')
alert("It worked.")
};
});