2012-05-03 17 views
2

データ属性が変更されたばかりの要素を見つけるjQuery検索を作成しようとしています。検索は機能していません。ここで(CoffeeScriptのコンパイルから)Javascriptがある:間違って起こっているデータ属性に基づいて要素を検索する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

あなたがデータを操作するとき、あなたの新しいデータ値に基づいてDOMを見つけるしようとすると、新しいデータ値がhtml..soで書かれていません私見、それは '$ activity_divの宣言を何 – bondythegreat

+0

を発見していません'のように見える? –

+0

お待ちください... **データ**をセレクタとして使用できますか? – McGarnagle

答えて

3

.data('temp', '')または.attr('data-temp', '')を使用しましたか?それらは2つの異なるものです。後者を試して、それは動作します。

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