2012-05-03 40 views
2

我想創建一個jQuery搜索會發現,剛剛有一個數據屬性改變元素的元素。搜索不起作用。這裏是JavaScript(由CoffeeScript的編譯):jQuery選擇找到基於數據屬性不工作

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 
[] 

到底哪裏出問題了?

+0

恕我直言,當你操縱數據,新的數據值不會寫在html..so當您嘗試查找基於新的數據值的DOM,它沒有發現 – bondythegreat

+0

什麼'$ activity_div的聲明「看起來像? –

+0

等待...你可以使用** **數據作爲一個選擇? – McGarnagle

回答

3

您的意思是使用.data('temp', '').attr('data-temp', '')?這是兩回事。試試後者,它會起作用。

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 + "']"));