我知道元素ID应该是唯一的,但是在需要时应该使用哪个选择器
$("*#x1"),$("[id=x1]")或其他什么东西?
的HTML
<div id="x1">A</div>
<div id="x1">B</div>
<div id="x2">C</div>
Run Code Online (Sandbox Code Playgroud)
是的,您的 html 标记无效,并且 Id 在页面上必须是唯一的,但attribute在这种情况下,选择器会完成您的工作。
alert($('[id=x1]').length);
Run Code Online (Sandbox Code Playgroud)
正如提到的其他几个答案:不要重复ID。这是一个可怕,可怕,没有好处,非常糟糕的主意:如果多个不同的HTML元素是不同的元素,它们可以具有相同的ID吗?
我不确定如果执行此操作会发生什么,但是我认为这取决于浏览器,这意味着您不能依赖它的合理性。
使用class来代替:
<div class="x1">A</div>
<div class="x1">B</div>
<div class="x2">C</div>
Run Code Online (Sandbox Code Playgroud)
然后使用与CSS语法匹配的jQuery的类选择器:
$('.x1')
Run Code Online (Sandbox Code Playgroud)