0

私はulliの木を持っています。子ノードのセットごとにチェックボックスまたはラジコンがあります。

私がしているのは、チェックボックスまたはラジオをチェックするときに、兄弟(チェックボックスの場合)を除くすべてのノードのチェックを外したいということです。だから私はここに私のjqueryを書きました。

私のjqueryは、助けが必要な1つの問題を予期して機能しています。

以下です:

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 に答える