2017-03-16 29 views
0

是否有任何理由使用前例。输入#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> 
+0

'input#id'将使引擎首先获取具有必要ID的特定类型的元素和获取元素。这减少了大量的发动机工作。 – Rajesh

+0

它们是相同的,因为你指定了一个'id',你怎么访问它并不重要,我认为'id'可以更具可读性。 – Ahmad

+0

@Rajesh我认为这对引擎没有太大的影响,因为它是一个id,整个文档中只有一个元素,所以它已经很快了。 – Ahmad

回答

1

在在这种情况下,实际效果而言,没有什么区别。

就潜在的实际效果而言,input#id仅选择(a)为input个元素和(b)将id属性设置为id的元素。 #id只要求第二次检查。所以你稍微更具体。也就是说,如果你有一个id可以适用于多种类型的元素,你做错了什么。

就表现效果而言,略有不同。在幕后,#id使用document.getElementByIdsource)找到。 input#id使用jQuery.find,因此最终使用document.querySelectorAllsource)。 getElementById方法的性能会稍好一些 - 但不要太在意。如果它重复了一千次,你将不会注意到它的收益微乎其微。

最显着的差异:input#id是更多的字符类型,并有一个错字的机会较大。

相关问题