2015-06-28 1 views
0
$(".lookup "+id).css("background-color","green"); 

Я хочу изменить фон «lookup 123456» на зеленый, если совпадения найдены. Я пишу это на консоль: console.log (". Lookup" + id) работает нормально. Но он не выбирается с помощью селектора.Почему этот селектор JQUERY с varibale и пробелом не работает?

Любая помощь?

+0

что такое идентификатор? это элемент id? –

+0

Его 'переменная, которая содержит id - да. На этот вопрос был дан ответ, спасибо. – PHPWhisperer

ответ

1

Используйте следующий код:

$("[class='lookup "+id+"']").css(); 
+0

Это действительно работает. Можете ли вы объяснить, почему? – PHPWhisperer

+0

@PHPWhisperer работает, потому что он выбирает на основе значения атрибута класса элементов, причина, по которой вы не можете использовать селектор классов, состоит в том, что у вас не может быть пробела в имени класса (у вас есть два имена классов, но второй недействителен, так как он начинается с числа) –

+0

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

0

Селектор не может начинаться с цифры.

http://www.w3.org/TR/CSS21/syndata.html#characters

В CSS, идентификаторы (включая имена элементов, классы и идентификаторы в селекторов) могут содержать только символы [A-z0-9] и ISO 10646 символы U + 00A1 и выше, плюс дефис (-) и подчеркивание (_); , они не могут начинаться с цифры или дефиса, за которым следует цифра. Идентификаторы могут также содержать экранированные символы и любой символ ISO 10646 в виде числового кода (см. Следующий пункт). Для экземпляра идентификатор «B & W?» может быть , записанный как «B \ & W \?" или "B \ 26 W \ 3F".

Which characters are valid in CSS class names/selectors?

1

Я рассматриваю идентификатор переменной имеет идентификатор элемента.

Предположим, ID = "что-то"

затем, если вы используете ваш код

$(".lookup "+id).css("background-color","green"); 

равно

$(".lookup something").css("background-color","green"); 

где-то не элемент должен быть #, чтобы выбрать по id. поэтому попробуйте этот код

$(".lookup #"+id).css("background-color","green"); 

Это будет

$(".lookup #something").css("background-color","green"); 
2

Я не очень ясно о том, что вы ищете.

Если вы хотите выбрать элементы с помощью class="lookup 123456", тогда вы должны использовать . не space. Пример:

$('.lookup.' + id); 

Если вы хотите, чтобы выбрать элементы с class="lookup" id="123456", то вы должны использовать # не пространство. Пример:

$('.lookup#' + id); 

Ваш текущий селектор означает что-то вроде этого.

<div class="lookup"> 
    <123456></123456> 
</div>