JQuery - 检查每个ASP CheckBox的Checked属性,如果选中,则检查fadeTo

时间:2013-12-05 16:18:22

标签: jquery

这是我的第一个问题,如果我做错了,请告诉我。无论如何,我想要做的是,在文档完成后,检查是否检查了任何复选框,然后淡化那些段落元素,如下面最里面的​​代码所示。就实际执行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.")
    };
});

2 个答案:

答案 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.")
    };
});