2012-01-23 33 views
2

すべての<div>の中にある.viewクラスに属するすべてのjquery UIボタンを選択したいと思います。そのことを念頭に置いて、私は次のコードを書いていますが、私が望むものはありません。私はそのクラスを持つクラス.viewある要素内に住んで.ui-buttonあるすべての要素を返すために、言ったように私が欲しいものこのセレクタが機能しないのはなぜですか?

は、です。

$(".view").find('.ui-button').each(function(index){ 
     console.log(index); 
    }) 

    $(".view .ui-button").each(function(index){ 
     console.log(index); 
    }) 

    $(".view > .ui-button").each(function(index){ 
     console.log(index); 
    }); 

あなたたちはその<div>中に住んJqueryUIボタンが実際に存在していることがわかりますので、私は、スクリーンショットを撮影してきました。 http://imgur.com/yDlw0

ありがとうございます。私はまだ何も..タグを閉じる前に、最後にスクリプトを含むをプッシュしようとしたんきた...

で作業するときに、私は、私は通常、何かをしようとした

EDIT

非同期リクエスト(この場合は?)。は、500ミリ秒の遅延でsetTimeoutコール内のすべてをラップしています。

これは意味がありますか?

+1

*「...どれも私がしたいことはしません」*あなたは、あなたが期待していることについてより具体的にすることができますか?セレクタは私にはうまく見えます。 –

+2

簡略化した例で動作します。http://jsfiddle.net/G7eRX/ – Jamiec

+0

参照してください。それがなぜ私にとってうまくいかないのか? –

答えて

3

前に、一番下に配置する必要がありますセレクタの実行後に、クラスにui-buttonを追加します。

thisの例を参照してください。これは、これが少なくとも実現可能であることを実証しています。

したがって、ui-buttonクラスを使用して操作する前に、buttonを確実に呼び出すか、他のクラスを使用して選択しようとしている要素を識別する必要があります。第2のポイントは重要なものです。 button()関数を適用するためにそれらの要素を選択できるように、それらの要素に既に別のクラスが存在している必要があります。

+0

。 –

+0

@Felipe 'button()'を呼び出すコードが 'ready'ハンドラにある場合、あなたの質問のコードも' ready'ハンドラ(同じか別のハンドラ)に存在することを確認する必要があります。それ以外の場合は、ページ内の他のすべてのスクリプトの下にあっても 'button()'の呼び出しの前に実行されます。 –

+0

うん。どちらも準備完了ハンドラにあります。おもう。 –

1

スクリプトはいつ実行されますか? jQueryUIライブラリの前に追加しておくと、クラスが追加される前に検索する必要があります。

一般的なルールとして、カスタムのJavaScriptファイルやスクリプトは、右の私は、これはあなたが追加jQueryUI機能button()を呼び出していることに起因する疑いが閉じ</body>

+0

具体的には、延期可能なスクリプトのみを「」に配置する必要があります。 –

関連する問題