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

Javascript jQuery选择器找不到存在的元素,javascript,jquery,html,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”的元素 为什么第一个示例不起作用?您可以使用属性选择器: $('[id="443

这不管用

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

var name= "li.selected:first";
 selectedEntity = $(name).attr('entityId');
selectedEntity
未定义,但确实存在id=“443”class=“selected”的元素


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

您可以使用属性选择器:

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

请参见此

尽管在HTML中不允许以数字开头的HTML5 ID,但您的选择器应该可以工作()。代码和/或标记中的其他位置必须有错误

您应该解决以下几个问题:

  • ID必须是唯一的,否则您的HTML无效
  • 过度限定ID选择器对性能不利,因为1)甚至没有必要
  • ID选择器只返回第一个元素,因此使用
    :first
    是无用的(也受第1点的影响)
  • 不要使用自定义属性,如
    entityId
    。相反,请使用。然后您可以使用方法来获取/设置这些属性。(但请注意,您不能使用)

  • 元素ID不能以数字开头…@benM我不能更改ID。解决方法是什么?嗯,ID在DOM中应该是唯一的,因此指定类和
    :first
    应该是多余的。您能确认吗?“元素ID不能以数字开头…”除非您正在使用HTML5@user521180您的ID必须是唯一的。首先解决这个问题。所以,我真的不明白问题是什么,因为OP报告不起作用…;)+1尽管如此。