0

У меня есть div с атрибутом «FOLDERNAME», который может что-то вроде «обувь„ платья,“и т.д. ДИВ выглядит следующим образом:.Использование переменной для значения внутри селектора JQuery атрибута равно-значение

<div id='folder_template' class="openclosed_folder_icon subfolder" foldername="shoes"> 
    <img class="folder_icon" src="images/folder_closed.png" /> 
    <div class="folder_label">name</div> 
</div> 

Я хочу найти div, который имеет конкретное значение для имени папки и изменить изображение в нем с «folder_closed.png» на «folder_open.png», поэтому графическое изображение выглядит как открытая папка, а не закрытая папка. Поэтому у меня есть код:

$("div[foldername=g.currentGallery]").attr('src','images/folder_open.png'); 

где g.currentGallery av av который содержит название галереи, например, «обувь», которую я хочу изменить. Но эта линия дает мне ошибку:

Syntax error, unrecognized expression: div[foldername=g.currentGallery]

Но это займет:

$("div[foldername='shoes']").attr('src','images/folder_open.png'); 

Почему я не могу использовать переменную здесь?

ответ

1

Как это:

$('div[foldername="' + g.currentGallery.replace(/"/g, '\\"') + '"]').attr(/* whatever */); 

Пример если мы имеем:

var g = { currentGallery: 'shoes["1"]' }; 

Тогда выражение селектора становится:

div[foldername="shoes[\"1\"]"] 
+0

Это позволит любой символ, даже ']': ' .. имя_файла = '"+ g.currentGallery +"'] ... '... См .: http://jsfiddle.net/fiddleyetu/k0976349/ @salmanA? – PeterKA

+0

@PeterKA: yes, когда ']' присутствует в значении атрибута, тогда необходимы кавычки. Пересмотрен ответ. –

+0

+1 для цитаты, скрывающейся в строке. Никогда не повредит, чтобы всегда процитировать. :) – PeterKA

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