正确选择后,数据属性不会改变

时间:2015-07-25 16:51:36

标签: jquery

我尝试更改data-question_ref属性,假设从2更改为1。以下是我知道这不起作用的方式。

console.log($('#tbl-answer tr[data-question_ref='+(counter + 1)+']').length)
$('#tbl-answer tr[data-question_ref='+(counter + 1)+']').data('question_ref',counter);
console.log($('#tbl-answer tr[data-question_ref='+(counter)+']').length)

打印:

2
0 //it should be 2 though

这里缺少什么东西吗?

以下是JSFiddle上的类似问题。

1 个答案:

答案 0 :(得分:0)

您不应该在jQuery中使用数据属性作为参考。数据始终在内存中更新,但DOM映射不会更新。查看我为您提供的示例,提醒您更新的数据。

http://jsfiddle.net/wgPTR/1622/

如果需要使用数据,您可以创建像

这样的过滤方法
$('#tbl-answer tr').filter(function(){ return (this.data('question_ref') == counter); }).length