使用输入#编号和只是#id有什么区别?
问题描述:
是否有任何理由使用前例。输入#ID?为什么不只是#id?下面的代码:使用输入#编号和只是#id有什么区别?
$("button").on("click", function() {
var rate = $("#rate_1").val();
var quant = $("#quant_1").val();
});
VS
$("button").on("click", function() {
var rate = $("input#rate_1").val();
var quant = $("input#quant_1").val();
});
HTML
<tr>
<td><input type="textbox" id="quant_1" class="txtbox"></input></td>
<td><input type="textbox" id="rate_1" class="txtbox"></input></td>
</tr>
答
在在这种情况下,实际效果而言,没有什么区别。
就潜在的实际效果而言,input#id
仅选择(a)为input
个元素和(b)将id
属性设置为id
的元素。 #id
只要求第二次检查。所以你稍微更具体。也就是说,如果你有一个id
可以适用于多种类型的元素,你做错了什么。
就表现效果而言,略有不同。在幕后,#id
使用document.getElementById
(source)找到。 input#id
使用jQuery.find
,因此最终使用document.querySelectorAll
(source)。 getElementById
方法的性能会稍好一些 - 但不要太在意。如果它重复了一千次,你将不会注意到它的收益微乎其微。
最显着的差异:input#id
是更多的字符类型,并有一个错字的机会较大。
'input#id'将使引擎首先获取具有必要ID的特定类型的元素和获取元素。这减少了大量的发动机工作。 – Rajesh
它们是相同的,因为你指定了一个'id',你怎么访问它并不重要,我认为'id'可以更具可读性。 – Ahmad
@Rajesh我认为这对引擎没有太大的影响,因为它是一个id,整个文档中只有一个元素,所以它已经很快了。 – Ahmad