在jquery中,同一同级的父级在比较时返回false

In jquery parent of same sibling when compared returning false

本文关键字:比较 返回 false jquery      更新时间:2023-12-02

我有一个ul-li树。我为每组子节点都有一个复选框或一个单选控件。

我所做的是,当我选中任何复选框或单选框时,我希望除同级节点外的所有节点都被取消选中(如果是复选框)。所以我在这里写了我的jquery。

我的jquery正在处理一个我需要帮助的问题。

它如下:

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

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

$(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");
    }
}

将完成