2017-10-16 51 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更改它。