Javascript 这个选择器之间有什么区别吗

Javascript 这个选择器之间有什么区别吗,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,我继承了非常混乱的jQuery代码,我应该修复这些代码。有一些非常有趣的代码行:)但这一行让我感到奇怪 $("input[type=submit][id='Verifier']").addClass("bttnDisable stateDisable").attr("disabled", "disabled"); 它和我的有什么不同吗 $("#Verifier").addClass("bttnDisable stateDisable").attr("disabled", "disabled")

我继承了非常混乱的jQuery代码,我应该修复这些代码。有一些非常有趣的代码行:)但这一行让我感到奇怪

$("input[type=submit][id='Verifier']").addClass("bttnDisable stateDisable").attr("disabled", "disabled");
它和我的有什么不同吗

$("#Verifier").addClass("bttnDisable stateDisable").attr("disabled", "disabled");

页面上没有其他具有此类ID的元素,因此我觉得它相当无用。我认为如果有另一个元素具有相同的ID(这是错误的),那么它可能有一些意义。或者它还有我不知道的其他优势吗?另外,它不是更慢吗?

因为
id
在文档中应该是唯一的,所以用id链接其他选择器以目标元素似乎是无用的

有什么不同吗


是的,id选择器将使用本机
document.getElementById
方法,并且将比链式方法快得多。

没错,这是一行无用的行。如果您有id(因为id必须是唯一的),那么其他jquery选择器就没有任何意义
$(“#验证器”)
是正确的方法,虽然两个选择器都会做相同的事情,但后面的一个更快。当您使用时,您还可以将
.attr(“disabled”,“disabled”)
更改为
.prop('disabled',true)
确实,一个Id在页面上只能出现一次,因此,如果页面的其余部分也很好,那么第二个代码也很好。如果验证器是一个类,我将使用
input.Verifier[type=submit]
作为选择器重新编译。如果它是在jQuery中输入的,为什么不使用它呢?@Grundy但是如果“Verifier”在注册页面上的提交按钮上,而其他“Verifier”在其他页面上是一个DIV,并且两个页面都使用相同的JS文件,那么
input[type=submit][id='Verifier']
将在注册页面上选择仅提交按钮,并且
\Verifier
将选择这两个按钮(因为它们不在同一页上)