我正在创建一个将RGB颜色转换为十六进制代码的功能,反之亦然。 HTML是div中的一组6个输入(其ID为rgbHex)。我想在用户输入6个文本框中的任何一个时调用此函数。
对于那些想要代码的人:
<div id="rgbHex">
<input id="hr" /> <input id="hg" /> <input id="hb" /> <br/>
<input id="rr" /> <input id="rg" /> <input id="rb" /> <br/>
</div>
由于我正在使用的网页有多个<input>
,我想确保只在用户输入这6个文本框之一时调用该函数。
当我在我的IDE中输入$('#rgbHex input')
时,它给出的警告是Inefficient jQuery Usage
。当我使用$('input', '#rgbHex')
时,警告会消失。所以我的问题是:为什么后者比前者更有效?
答案 0 :(得分:2)
效率不是很低,但可以通过编辑器建议将上下文分开来进行微观优化;它大致相当于:
$('#rgbHex').find('input')
这内部优化,可立即使用getElementById()
和getElementsByTagName()
,而无需使用Sizzle执行查询。
与任何事情一样,这是否有所作为只能通过自己的测量来客观地确定。