2013-11-29 3 views
-6

У меня есть идентификатор элемента в переменной: elementId. Теперь я хочу выбрать элемент из класса, скажем .control-menu, которые имеют идентификатор, равный id элемента.jquery selector с классом и переменной id

Я пытаюсь это как

$('.control-menu "#"+elementId') 

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

+0

попробовать использовать '$ («#»+ elementid +« Управление меню»)' –

+0

Вы ищете элемент с таким идентификатором * внутри * другой элемент, который имеет класс 'control-menu', или вы ищете элемент с этим идентификатором, который также сам имеет класс' control-menu'? –

+0

Ya, что вы ищете? Ваш вопрос действительно неоднозначный. –

ответ

7

Я хотел бы предложить:

$('#' + elementId + '.control-menu'); 

Сопряг.

id уникален; сначала выберите его, а затем проверьте, имеет ли он соответствующее имя класса.

Кстати, ваш оригинальный селектор искал элемент с id, который имеет элемент предка с классом .control-menu.

Если элемент с id, для которого вы ищете является потомком элемента другого с классом .control-menu, то:

$('.control-menu #'+elementid); 

Будет соответсвовать <div class="control-menu"><div id="elementID"></div></div>

+0

Это не делает то, что, по-видимому, делает код OP, который находит этот элемент только в том случае, если он * внутри * что-то с классом «control-menu» (вместо того, чтобы находить что-то, что * класс 'control-menu'). –

+1

Я прочитал описание как желающее найти элемент с этим 'id' из коллекции элементов с именем' class'. Хотя это, возможно, неоднозначно. –

+0

Да, вопрос действительно неясен. –

0

Вы можете использовать:

$('#' + elementId + '.control-menu'); 

id уникален; сначала выберите его, а затем проверьте, имеет ли он соответствующее имя класса.

Кстати, ваш оригинальный селектор искал элемент с id, который имеет элемент предка с классом .control-menu.

Если элемент с id, для которого вы ищете является потомком элемента другого с классом .control-menu, то:

$('.control-menu #'+elementid); 
0
$('.control-menu #'+elementId); 

или просто

$('#'+elementId); 
1

поскольку у вас есть идентификатор, вы можете просто использовать селектор ID, поскольку идентификатор элемента будет уникальным

$('#'+elementId) 
0

Простой, как:

$('#'+ elementId) 

класс не нужен вообще для ID уже уникален на вашей странице.


Ваш вопрос название говорит: jquery selector with a class and variable id ...

Если вы собираетесь выбрать CLASS, который имеет такое же имя, как и желаемой переменной ID, чем идти на:

$('.control-menu .'+ elementId) 
//    ^------------------ note the class selector 

В противном случае, я повторяю вам не может иметь несколько ID элементов в одном стр.

0

попробовать этот

$('.control-menu #'+elementId) 
Смежные вопросы