2012-02-12 3 views
0

Это работает (в Firefox, но не есть):Dynamic 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

Он работает как espected на jsfiddle: http://jsfiddle.net/7bQfE/

Так что я думаю, что еще что-то не так.

  • Вы ввели свой код в функцию $(document).ready()?
  • Является ли значение filename, как вы ожидали (console.log var и выглядит, если это так)?
  • Если вы положили ID в mothereffing css escapes и зеленый блок JS?
+0

Благодарим вас, jquery нуждается в «_s» и «.», Убегая туда, где document.getElementByID() этого не делает. Его, вероятно, проще всего придерживаться javascript в этом случае. –

+0

@ user1192735: Подчеркивания не имеют никакого специального значения в jQuery. Fullstops обозначают имена классов. Вы можете узнать больше о преамбуле о селекторах: http://api.jquery.com/category/selectors/ –

0

Я думаю, что есть точка в именах файлов? Вы должны избегать их с помощью «\\».

+0

Вы действительно правы, есть также подчеркивание. –

Смежные вопросы