为什么这个带有变量和空间的JQUERY选择器不起作用?

为什么这个带有变量和空间的JQUERY选择器不起作用?,jquery,css,selector,Jquery,Css,Selector,我想在找到匹配项时将“lookup 123456”的背景更改为绿色。我将其写入控制台:console.log(“.lookup”+id)它工作正常。但它不会被选择器选中 有任何帮助吗?请使用以下代码: $(".lookup "+id).css("background-color","green"); 使用以下代码: $(".lookup "+id).css("background-color","green"); 选择器不能以数字开头 在CSS中,标识符(包括 中的元素名称、类和ID

我想在找到匹配项时将“lookup 123456”的背景更改为绿色。我将其写入控制台:console.log(“.lookup”+id)它工作正常。但它不会被选择器选中


有任何帮助吗?

请使用以下代码:

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

使用以下代码:

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

选择器不能以数字开头

在CSS中,标识符(包括 中的元素名称、类和ID 选择器)只能包含 字符[a-z0-9]和ISO 10646 字符U+00A1及以上,加上 连字符(-)和下划线(; 它们不能以数字或数字开头 连字符后跟数字。 标识符也可以包含转义 字符和任何ISO10646字符 作为数字代码(请参见下一项)。对于 例如,标识符“B&W?”可能是 写为“B\&W\?”或“B\26 W\3F”


选择器不能以数字开头

在CSS中,标识符(包括 中的元素名称、类和ID 选择器)只能包含 字符[a-z0-9]和ISO 10646 字符U+00A1及以上,加上 连字符(-)和下划线(; 它们不能以数字或数字开头 连字符后跟数字。 标识符也可以包含转义 字符和任何ISO10646字符 作为数字代码(请参见下一项)。对于 例如,标识符“B&W?”可能是 写为“B\&W\?”或“B\26 W\3F”


我正在考虑变量id保存元素的id

假设id=“某物”

那么如果你使用你的代码

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

 $(".lookup "+id).css("background-color","green");
其中某事物不是元素 应该有#按id选择。 所以试试这个代码

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

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

我正在考虑变量id保存元素的id

假设id=“某物”

那么如果你使用你的代码

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

 $(".lookup "+id).css("background-color","green");
其中某事物不是元素 应该有#按id选择。 所以试试这个代码

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

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

我不太清楚你在找什么

如果要使用
class=“lookup 123456”
选择元素,则应使用
而不是
空格
。例如:

 $(".lookup #something").css("background-color","green");
$('.lookup.' + id);
如果要使用
class=“lookup”id=“123456”
选择元素,则应使用
#
而不是空格。例如:

 $(".lookup #something").css("background-color","green");
$('.lookup.' + id);
您当前的选择器意味着选择类似的内容

$('.lookup#' + id);

我不太清楚你在找什么

如果要使用
class=“lookup 123456”
选择元素,则应使用
而不是
空格
。例如:

 $(".lookup #something").css("background-color","green");
$('.lookup.' + id);
如果要使用
class=“lookup”id=“123456”
选择元素,则应使用
#
而不是空格。例如:

 $(".lookup #something").css("background-color","green");
$('.lookup.' + id);
您当前的选择器意味着选择类似的内容

$('.lookup#' + id);


什么是身份证??它是元素id吗?它是一个包含id的变量-是。下面的问题已经回答了,谢谢。身份证是什么??它是元素id吗?它是一个包含id的变量-是。下面的问题已经得到了回答,谢谢。@PHPWhisperer它之所以有效,是因为它根据元素的class属性的值进行选择,而无法使用类选择器的原因是类名中不能有空格(您拥有的是两个类名,但第二个类名无效,因为它以数字开头)它将在您的代码中使用它的use space来选择子标记,因此当您直接使用spaces时,它将检查lookup类。因此,我们必须告诉jQuery,这个带空格的完整类是name。如果它不包含number,那么这会起作用,因为您需要查找属性[class=“lookup 789789”]由于使用数字作为类是不允许的,这是因为它没有使用jquery默认类查找器。@PHPWhisperer,因为它根据元素的class属性值进行选择,所以无法使用类选择器,因为类名中不能有空格(您有两个类名,但第二个类名无效,因为它以数字开头)它将在您的代码中使用它的use space来选择子标记,因此当您直接使用spaces时,它将去检查lookup类。因此,我们必须告诉jQuery,这个带有空格的完整类是name。如果它不包含数字,这将起作用,因为您正在查找属性[class=“lookup 78789789”]由于使用数字作为类是不允许的,这是因为它没有使用jquery默认类查找器。。