2012-02-12 148 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