用于根据数据属性查找元素的jQuery选择器不起作用

时间:2012-05-03 04:51:14

标签: jquery html jquery-selectors

我正在尝试创建一个jQuery搜索,它将找到刚刚更改了数据属性的元素。搜索无效。这是Javascript(从CoffeeScript编译):

new_temp_value = "" + (Math.round((new Date()).getTime() / 1000));
console.log("new_temp_value is " + new_temp_value);
$activity_div.data('temp', new_temp_value);
console.log('value of data-temp in $activity_div is now');
console.log($activity_div.data('temp'));
console.log($activity_div.hasClass('activity_div'));
console.log($(".activity_div[data-temp='" + new_temp_value + "']"));

输出

new_temp_value is 1336020404
value of data-temp in $activity_div is now
1336020404
true
[]

出了什么问题?

2 个答案:

答案 0 :(得分:3)

您的意思是使用.data('temp', '')还是.attr('data-temp', '')?这是两件不同的事情。尝试后者,它会起作用。

答案 1 :(得分:2)

使用.attr()代替.data()进行更新。 .data()目前尚未更新DOM。

new_temp_value = "" + (Math.round((new Date()).getTime() / 1000));
console.log("new_temp_value is " + new_temp_value);
$activity_div.attr('data-temp', new_temp_value);
console.log('value of data-temp in $activity_div is now');
console.log($activity_div.data('temp'));
console.log($(".activity_div[data-temp='" + new_temp_value + "']"));