2012-12-18 78 views
0

我仍在嘗試Find-an-element-using-jquery-with-a-kind-of-regex-comparison-in-the-data-title,其中div.textbox類的動態生成數據標題。所以,我想找到與該特定數據的標題框,這是建議的代碼,它並沒有帶來錯誤:jquery未找到具有動態數據標題的元素

var $theboxes = $(".textbox[data-title^='"+dt+"']"); 

然而,它似乎並沒有真正發現任何.textbox,即使他們確實存在。因爲每當我嘗試$theboxes.length,它總是0

這是一個數據標題的例子,順便說一下:en_Person_Title/ لقب。所以這是斜線之前的英文,阿拉伯文之後。而且我有多個具有相同數據標題屬性的文本框,但代碼沒有找到它們中的任何一個。任何想法有什麼不對?

+0

嘗試了'包含屬性*'就是'[數據標題* =' –

+0

也第一次檢查,如果這是返回任何東西'$( 「文本框[數據標題]」)。length' –

+0

否則,它會返回包含數據標題的正確數量的文本框。我試過'* ='但沒有差異。 – user961627

回答

2

「我試圖* =,但沒有差異。」

^=搜索開始有了....它是區分大小寫

http://jsfiddle.net/BnQnV/1/

+0

謝謝,雖然我知道這一點。我的'dt'完全一樣。我想知道這個問題是否與比較包括非英文UTF-8字符或其他字符的字符串有關? – user961627

1

當您使用jquery選擇元素時,它只會選擇運行該代碼時存在的元素。如果您動態添加更多元素或修改元素,以便可以通過該選擇器進行選擇,則需要重新選擇它們。

var $theboxes = $(".textbox[data-title^='"+dt+"']"); 
console.log($theboxes.length); // 0 

$(".textbox:not([data-title])").first().attr("data-title",dt+"foobar"); 
console.log($theboxes.length); // 0 

$theboxes = $(".textbox[data-title^='"+dt+"']"); 
console.log($theboxes.length); // 1