2012-01-23 45 views
2

我想選擇所有屬於.view類的<div>的所有jQuery UI按鈕。考慮到這一點,我寫了下面的代碼段,其中沒有一段是我想要的。爲什麼這個選擇器不工作?

我要的是,就像我說的,回到它的類.ui-button住一個元素,它的類是.view內的所有元素。

$(".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

在此先感謝。

編輯

我試着推動包括腳本最後一件事的關閉標記之前..仍然沒有...

然後我嘗試一些與工作時,我通常做異步請求(是這種情況嗎?).. 包裝一切在一個setTimeout呼叫500毫秒延遲..它的工作。

這是否有意義?

+1

*「......其中沒有一個做我想要的。」*您能更具體地瞭解您的期望嗎?選擇器對我來說看起來很好。 –

+2

在一個簡化的例子中工作:http://jsfiddle.net/G7eRX/ – Jamiec

+0

我明白了。任何想法爲什麼它不適合我? –

回答

3

我懷疑這是事實,你在呼喚jQueryUI的功能button()它增加了引起類別ui-button添加到選擇器運行後的元素。

請參閱this示例,這表明這至少是可行的。

因此,解決方案應確保在嘗試使用ui-button類操作之前調用button,或者使用其他類來標識要嘗試選擇的元素。第二點是重要的一點;您必須在這些元素上已經有了另一個類,以便您可以選擇它們以應用button()函數。

+0

電話已經推腳本包括到最後一件事前..還是什麼都沒有。 –

+0

@Felipe,如果調用'button()'的代碼駐留在'ready'處理程序中,則必須確保問題中的代碼也駐留在'ready'處理程序中(或者是相同的或另一個)。否則,它將在調用'button()'之前運行,即使它位於頁面中的所有其他腳本之下。 –

+0

是的。兩者都駐留在準備好的處理程序中。我認爲。 –

1

您的腳本何時運行?很可能你已經將它包含在jQueryUI庫之前,這會導致你在添加之前搜索這些類。

作爲一般規則,自定義JavaScript文件和腳本應放置在最底層,收盤前右</body>

+0

具體來說,僅可延期腳本應該放在''的 –

相關問題