2012-02-12 7 views
0

これは(つまり、Firefoxではなく)動作します:動的なjQueryのセレクタ

document.getElementById(filename+'Likes').innerHTML=result; 
document.getElementById(filename+'Like').setAttribute('class','hideGalleryLike'); 
document.getElementById(filename+'Dislike').setAttribute('class','hideGalleryLike'); 

私はjqueryのコードがあるべきと思った。

$('#'+filename+'Likes').html(result); 
$('#'+filename+'Like').attr('class','hideGalleryLike'); 
$('#'+filename+'Dislike').attr('class','hideGalleryLike'); 

しかし、それは動作しません。 'filename'は常にファイルをアップロードしたユーザーのユーザー名で始まります。ユーザー名は常に文字で始まります。私は、クラスを変更する他の方法を認識していますが、ダイナミックセレクターが問題であるようです。

+0

コードは正常です。クラスを設定する他の方法を試しましたか?あなたのコードを考えれば、それは私が想像する唯一の問題です。 'filename'の例も提供してください。 –

+0

状況を投稿してください。これはうまくいくはずです。 – Blender

答えて

0

jsfiddleでespectedように動作します:http://jsfiddle.net/7bQfE/

だから私は何か他のものが間違っていると思います。

  • コードを$(document).ready()関数に入れましたか?
  • filenameの値は(console.logの場合はvarですが、それがそうであるかどうか)わかりますか?
  • IDをmothereffing css escapesに入れて、JSブロックが緑色の場合は、
+0

ありがとうございます。jqueryには、 '_'と '。が必要です。ここではdocument.getElementByID()はエスケープしていません。その場合にはおそらくjavascriptに固執するのが最も簡単です。 –

+0

@ user1192735:下線はjQueryでは特別な意味を持ちません。 Fullstopsはクラス名を示します。プリアンブルの詳細については、セレクタを参照してください。http://api.jquery.com/category/selectors/ –

0

ファイル名にドットがあると思いますか?あなたは "\\"でそれらをエスケープする必要があります。

+0

本当に正しいですが、アンダースコアもあります。 –