想知道以下哪项被认为是正确的做事方式。如果我有以下html:
<div id="container">
<div id="form">
<div class="field">TEXT</div>
</div>
</div>
我想使用jQuery在字段中检索文本,这更好(以及为什么)。多个选择器:
$("#container #form .field").text();
或使用上下文:
$((".field", $("#form")), $("#container")).text();
这是一个包含:http://jsfiddle.net/f8LKc/
的小提琴答案 0 :(得分:4)
您应该只使用$('#field')
,因为它是一个ID选择器,只有<div id="field">
的一个实例。
答案 1 :(得分:1)
没有什么比运行基准来测试两种方法的性能更好的了。我在jsperf.com上创建了一个测试用例,测试了你的两种方法,以及按类$(".field")
进行选择:
Testing in Chrome 21.0.1180.89 32-bit on Windows Server 2008 R2 / 7 64-bit Test
+-----------------------+---------------------------+
| Test | Ops/sec |
+-----------------------+---------------------------+
| Multiple Selector | 43,265 67% slower |
+-----------------------+---------------------------+
| Selector w/ Context | 130,051 fastest |
+-----------------------+---------------------------+
| Selector w/ Class | 126,064 2% slower |
+-----------------------+---------------------------+
<强> TEST CASE 强>