2012-02-12 185 views
0

這工作(在Firefox而不是IE):動態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'); 

但它不工作。 '文件名'始終以上傳文件的人的用戶名開頭,而文件名總是以字母開頭。我意識到改變班級的其他方式,但它似乎是動態選擇器是問題。

+0

代碼看起來不錯。您是否嘗試過其他方式來設置課程?這是我想象的唯一可能是給定代碼的問題。還提供了一個'filename'的例子。 – 2012-02-12 19:09:32

+0

發佈上下文。這應該工作得很好。 – Blender 2012-02-12 19:09:50

回答

0

它的工作原理在的jsfiddle espected:http://jsfiddle.net/7bQfE/

所以我認爲別的東西是錯誤的。

  • 你把你的代碼放到$(document).ready()函數中嗎?
  • 當您注意到filename的值時(console.log var,看起來如此)?
  • 如果你把ID放入mothereffing css escapes並且JS塊是綠色的?
+0

謝謝,jquery需要'_'s和'。',因爲document.getElementByID()沒有轉義。在這種情況下,它最容易堅持使用javascript。 – 2012-02-12 19:29:31

+0

@ user1192735:下劃線在jQuery中沒有任何特殊含義。 Fullstops表示類名。您可以在關於選擇器的前言中找到更多信息:http://api.jquery.com/category/selectors/ – 2012-02-13 10:36:32

0

我想文件名中有一個點?你必須用「\\」來逃避它們。

+0

你確實是對的,還有一個下劃線。 – 2012-02-12 19:46:31