我正在为动态创建的div添加几个输入字段。目前,我根据当前的增量给他们一个班级。结果看起来像这样(简化):
<div class="container">
<input type="text" class="c_1"/>
<input type="text" class="c_2"/>
</div>
<div class="container">
<input type="text" class="c_1"/>
<input type="text" class="c_2"/>
<input type="text" class="c_3"/>
</div>
我通过执行以下操作将数据映射到元素:
$container.find('.c_' + id).val(value);
其中$container
是迭代中的当前容器div。
由于每个div中最多可以有100个输入元素,因此从性能的角度来看,我想知道这是否是一个很好的解决方案。通过HTML5数据属性定位元素会更快吗?或者我应该尝试不同的方法?现在,旧版浏览器的映射速度非常慢。
答案 0 :(得分:2)
如果您知道容器的所有子项是您感兴趣的输入元素,则可以使用
访问一个元素var input = $container.children[17];
这应该比搜索具有特定类的孩子快得多。你甚至可以考虑完全放弃这门课程。
jQuery:如果$container
是一个jQuery对象 - 它看起来像是 - 你必须使用像
var input = $container.get().children[17];
直接访问DOM元素
JsPerf:我做了一个小jsPerf来比较JS .children
和jQuery find
,这表明它实际上更快。