2012-04-05 9 views
-1

で特定の親を取得..私は次を持つようにしたいですdivの親..私は、次のHTMLを持っていると私は、この親が(ZeroClass)のクラスを持っている場合は、オブジェクト(崩壊)</p> <p>の最初のdivの親を取得する必要がありますjQueryの

<div> 
    <div id = "DeadCode"> 
    <div class = "ZeroClass"> 
     <table class = "zeroTable"> 
     <...tableData...> 
     </table> 
    </div> 
    </div> 
</div> 

jQueryの機能:

function ResizeGrid(){ 
    var collapse = $(".zeroTable").parent(); 

    if ($(collapse).hasClass("ZeroClass")) { 
     collapse = $(collapse).parents($("div")); 
    } 
} 

すべてがうまく行くが、if文を通過するとき、それは...任意のアイデアをヌル折りたたむのでしょうか?

+2

は、あなたが言うことができる

function ResizeGrid(){ var collapse = $(".zeroTable").parent(); if ($(collapse).hasClass("ZeroClass")){ $(collapse).parents("div").addClass("divclass"); } } $("a").bind("click", ResizeGrid); 

CSS 'あなたのhtmlのクラス。 – Murtaza

+0

parent()。parent()。parents($( "div")); ?真剣に? closest()について聞いたことがありませんか? –

+1

CSSでキャメルケースを使用しないhttp://stackoverflow.com/questions/1437527/css-camelcase-vs-under-score –

答えて

0

使用parent二の第一歩とclosestのために:

function ResizeGrid() { 
    var $collapse = $(".zeroTable").parent(); 

    if ($collapse.hasClass("ZeroClass")) { 
     $collapse = $collapse.closest("div"); 
    } 
} 

あなたの問題は、この行にある:

collapse = $(collapse).parents($("div")); 

あなたが最初にすべてのdiv要素をフェッチ$("div")して、一致する$(collapse).parents()を伝えますそれらの中の一つ。

マイコード:

$collapse = $collapse.closest("div"); 

は最も近い親のdivを見つけるために、jQueryのを指示します。

jQuery変数に接頭辞として$を付けると、どのvarsがjQueryオブジェクトであり、どのDOMが正規のDOMノードであるかを把握するのに役立ちます。

+1

あなたはちょうどこのようなことをしました: '$($(...))'あなたのコードをもう一度読んでください:**ヒント:** 'collapse'は既にjQueryオブジェクト... – gdoron

+0

@gdoron:それを見つけていただきありがとうございます。 – jgauffin

+0

jgauffinありがとうございますが、これはうまくいきませんでした。最近close()は要素自体を最初にチェックします。残念ながら:( – Zero

1

ちょうど下のデモに

http://jsfiddle.net/ffRN7/37/

をチェックDEMO1が最も近いのdivに最も近いのdivを見つけるための

変更されたラインをaddClassますあなたはそれを次のようなものを与えられ、発見したあなたのHTMLやスクリプトで働いていました以下のスクリプトで...

$(collapse).closest("div").addClass("divclass"); 

http://jsfiddle.net/ffRN7/38/

DEMO2はケースフィドルのいずれかのIDやクラス スクリプトを持っていない親のdivにクラスを追加しますがアクセスできません: `.rgMasterTableある

.zeroTable td {border:1px solid black} 
.ZeroClass {border:1px solid green; width:90%; height:50px; margin:5px;} 

#DeadCode {border:1px solid blue; width:95%; height:100px; } 

.divclass{height:200px; padding:5px; background-color:yellow;} 
関連する問題