0

我有一棵乌里树。对于每组子节点,我都有一个复选框或一个无线电控件。

我正在做的是当我选中任何复选框或收音机时,我希望所有节点都被取消选中,除了兄弟节点(如果是复选框)。所以我在这里写了我的jquery。

我的 jquery 正在为我需要帮助的一个问题工作。

它在下面:

if($(this).parent().parent().parent() != $(elem).parent().parent().parent())

整个小提琴都在这里 在上述情况下,当我比较相同的父母时,false有时我应该得到。请查看代码并帮助理解为什么它们总是返回 true。

4

1 回答 1

1
$(function(){
    $("#tree").find("input").bind("change", function(){
        setStateForAllInputControls($("#tree"), this);
    });
});

function setStateForAllInputControls(o, elem) {
    //alert($(elem).attr("name"));

    if($(elem).attr("checked") == "checked") {
        $(o).find("input").each(function(){

            //problem is in this if condition
            if($(this).parent().parent().parent().get(0) != $(elem).parent().parent().parent().get(0)) {
                $(this).removeAttr("checked");
            }
        });
        $(elem).attr("checked", "checked");
    }
}

会成功的

于 2012-07-20T12:48:19.673 回答