2010-12-17 15 views
0

これは本当に簡単なはずですが、何をすべきかわからないようです。私は、jQueryアコーディオンのセクションにクリックされたクラスにクラスがあるかどうかを調べようとしています。そうであれば、関数を実行する必要があります。これまでのところ、私は私が変更機能に次のように使用してに作用しているコンテンツセクション調べることができることを発見しました:アコーディオンの変更機能からjQuery UIオブジェクトにアクセスする

Firebugの内のオブジェクトを見てみると
console.log(ui.newContent); 

を、私は0インデックスがあります見ることができます。 Firebugでそれを展開するために0をクリックすると、オブジェクトプロパティの1つとして「get classList」と表示されているものが表示されます。しかし、これにアクセスするには、次の作業のいずれ:だから、好奇心から、誰もがアクセスする方法を知っている

console.log(ui.newContent[0].id); 

を:

console.log(ui.newContent[0].classList); 
console.log(ui.newContent[0].classList()); 

はしかし、私はこの経て、オブジェクトのIDを取得することができましたclassList、または私はセレクタとしてIDを使用してオブジェクトを再度取得して、その上で.hasClassを使用できるようにする必要がありますか?無駄だと思われるが、回避策が考えられる。前もって感謝します!

+0

更新:同じ効果のためにclassName文字列を検索することもできました。これはベストプラクティスですか?私がそれらにアクセスすることができれば、クラスの配列をループするよりも効率的かもしれません... –

答えて

1

jQuery.hasClass()がうまくいくはずです。あなたのハンドラで:

if(ui.newContent.hasClass('foo')) { 
    // do something 
} 
+0

あなたは完全に正しいです。どうやら私はui.newContent [0]で.hasClassを使ってみました。ドー! –

+0

簡単に間違えてしまいます。 ui.newContentは、アコーディオンでちょうど選択されたコンテンツを含むjQueryオブジェクトです。 ui.newContent [0]を使用してjQueryオブジェクトにインデックスを付けると、jQueryはDOMオブジェクトを返します。そのため、hasClassやその他のjQueryメソッドは存在しなくなりました。 –

関連する問題