jQuery选择器找不到存在的元素

时间:2013-04-10 14:50:01

标签: javascript jquery html

这不起作用

var name= "#443.selected:first";
selectedEntity = $(name).attr('entityId');

这有效

var name= "li.selected:first";
 selectedEntity = $(name).attr('entityId');

selectedEntity未定义但存在一个元素,其中id =“443”class =“selected”。

为什么第一个例子不起作用?

2 个答案:

答案 0 :(得分:1)

您可以使用属性选择器:

$('[id="443"].selected:first')

请参阅此jsFiddle demo

答案 1 :(得分:1)

虽然HTML5以外的HTML中不允许使用以数字开头的ID,但您的选择器应该有效(working Demo)。您的代码和/或标记中的其他地方必定有错误。

您应该解决几个问题:

  1. ID必须是唯一的,否则您的HTML无效
  2. ID-Selector的资格过高对性能不利,并且由于1)甚至没有必要
  3. ID-Selectors仅返回第一个元素,因此使用:first是无用的(并且也受第1点影响)
  4. 请勿使用entityId等自定义属性。而是使用data- prefix。然后,您可以使用jQuerys data方法来获取/设置这些属性。 (请注意,您无法使用camelCase)。