【发布时间】:2014-08-08 16:12:56
【问题描述】:
我继承了我应该修复的非常混乱的 jQuery 代码。有一些非常有趣的代码行 :) 但这让我想知道。
$("input[type=submit][id='Verifier']").addClass("bttnDisable stateDisable").attr("disabled", "disabled");
有什么不同
$("#Verifier").addClass("bttnDisable stateDisable").attr("disabled", "disabled");
页面上没有其他具有此类 ID 的元素,所以我觉得它没什么用。我认为如果有另一个元素具有相同的 ID(这是错误的 AFAIK),它可能有一些意义。还是它有其他一些我不知道的优势?还有,是不是比较慢?
【问题讨论】:
-
你是对的,这是一条无用的行。
-
当你有 id (因为 id 必须是唯一的),那么其他 jquery 选择器没有任何意义。
$("#Verifier")是正确的方法,虽然两个选择器都会做同样的事情,但后面的更快。 -
当您使用它时,您还可以将
.attr("disabled", "disabled")更改为.prop('disabled', true) -
确实,一个 Id 应该只在页面上出现一次,所以如果页面的其余部分也很好,那么第二个代码就很好了。如果 Verifier 是一个类,我会推荐使用
input.Verifier[type=submit]作为选择器。如果它是在 jQuery 中实现的,为什么不使用它呢? -
@Grundy 但是如果“验证器”在注册页面上的提交按钮上,而其他“验证器”是其他页面上的 DIV,并且两个页面都使用相同的 JS 文件,那么
input[type=submit][id='Verifier']将选择仅提交注册页面上的按钮和#Verifier将选择它们(因为它们不在同一页面上)
标签: javascript jquery html jquery-selectors