2017-10-16 50 views
1

我的頁面包含一個元素表。每一行都有一個數據標籤(標識爲「reckey」,因爲這是數據庫在我出現之前幾年才建立起來的)。在構建表格時瀏覽我的javascript,我可以看到標籤設置正確。即,該行:jquery數據標記不返回值

$("#tblActivities tbody tr:first").data("reckey") 

返回值'122157'。但是,當我嘗試通過以下方式搜索該行時:

$("#tblActivities tbody tr[data-reckey='122157']") 

我的瀏覽器指出它未定義。我也試過它作爲

$("#tblActivities tbody tr[attr-data-reckey='122157']") 

,只是對於s的& G的,我試過

$("#tblActivities tbody tr[data-reckey]"), which still returned undefined. 

是否有人可以告訴我,我缺少的是什麼?如果這是一個簡單的語法錯誤,我不會感到驚訝,儘管我希望這是更深的東西,如果只是因爲我不覺得完全是一個白癡。

感謝,

+1

是通過javascript或純數據庫'data-reckey = 122157'添加的數據?此外,你使用的是什麼版本的jQuery? –

+1

https://stackoverflow.com/a/11673313/123422,可能嗎? –

+0

@UnamataSanatarai,我通過javascript添加數據標籤,但可以改變它,將其包含在構建HTML的字符串中。至於版本,我使用的是2.2.0。 – mforbes

回答

1

由於要添加的JavaScript數據屬性,你將不能夠直接通過$('[data-reckey="122157"]')選擇它(即,因爲它的jQuery存儲jQuery對象中的數據,而不是HTML 。

所以,如果可以的話,可以直接放置data-reckey=""成HTML,或通過迭代的元素,例如像這樣:

$("#tblActivities tbody tr").each(function() { 
    if ($(this).data('reckey') === '122157') { 
     // found the element... 
    } 
}); 
0

對於情況下別人的搜索確認了同樣的問題後來:解決方案是在創建html時包含數據標記,而不是稍後通過jquery更改它。