jQuery通过Id与空间和通过变量查找元素

时间:2017-02-01 10:39:00

标签: javascript jquery jquery-selectors

我能够通过id找到元素的元素,并在ID被硬编码时添加一个类,例如:

var tableId = el.id;

$('#' + tableId).find("[id='Checkout On']").addClass('highlight');

但是,我想将'Checkout On'作为变量传递,例如:

var tableId = el.id;
var childEl = col.id;

$('#' + tableId).find("[id=" + childEl + "]").addClass('highlight');

然而,这似乎不起作用。

更新

完全理解ID不应该有空格,但这不是我能够解决的问题。

3 个答案:

答案 0 :(得分:2)

您已使用变量

忽略了版本中的引号
id

但请注意,其中包含空格的id 无效。来自the spec

  

3.2.5.1 id属性

     

<div id="div1"> <button id="button1">Dummy</button> <span>My parent div has increased in height</span> </div> 属性指定其元素的唯一标识符(ID)。 [DOM]

     

该值必须在元素的主子树中的所有ID中唯一,并且必须至少包含一个字符。 该值不得包含任何空格字符。

(我的重点)

这意味着即使这在一个浏览器上运行,也不能保证它可以在另一个浏览器中工作,甚至不能保证它在其工作的那个小版本中工作。 (我打赌它会,但没有理由去尝试这样的事情......)

答案 1 :(得分:0)

永远不要将空格用于任何id或类名。使用snake_case或camelCase:checkout_oncheckoutOn

答案 2 :(得分:0)

如果要选择 ID 的元素,请使用#...选择器。这样更好。像这样:

var tableId = el.id;
var childEl = col.id;

$('#' + tableId).find("#" + childEl ).addClass('highlight');

注意: ID不能包含空格。查看this了解详情。