2016-11-23 2 views
0

У меня есть ссылки, динамически отображающиеся на странице, их идентификаторы также динамически создаются.Можно ли сделать селектор jquery в переменной?

Могу ли я сделать что-то вроде этого:

$('#dynamicVariable').otherStuff(); 

Я пытался разные вещи, как:

var whatever = "'#"+originalVariable+"'"; 

$(whatever).doStuff(); 

Ничего из этого не работает. Есть ли правильный способ сделать это? Или это просто невозможно?

Когда пользователь нажимает на ссылку, я хочу, чтобы что-то вроде галочки отображалось рядом с каждой нажатой ссылкой. Проблема, о которой я говорил выше, заключается в том, что все они динамически созданы, поэтому я не могу ничего жестко кодировать.

+0

Не могли бы вы привести рабочий пример? – Gavin

ответ

0

Использование

var whatever = "#"+originalVariable; 

Вы хотите все, чтобы быть строкой, равной "#foo" не "" #foo"

Внешний цитирует Дон Фактически, существует ... Это всего лишь способ рассказать синтаксическому анализатору, что вы описываете строку.

4

Удалить дополнительную цитату, которая совершенно не нужна в селекторе.

var whatever = "#" + originalVariable; 
//   --^--       
$(whatever).doStuff(); 
0

Несомненно. Селектор ищет допустимый селектор, который поставляется в виде строки. Таким образом, любой способ, которым вы строите эту действительную строку, зависит от вас.

В вашем случае у вас была строка, содержащая дополнительный набор кавычек, поэтому, пока у вас была допустимая строка, у вас не было допустимого селектора.

var originalVariable = $("div")[0].id; 
 
console.log(originalVariable); 
 
$("#" + originalVariable).html("Gotcha!");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="whatever"></div>

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