在容器中查找没有id的元素

时间:2013-09-19 09:19:53

标签: javascript jquery performance

我正在为动态创建的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数据属性定位元素会更快吗?或者我应该尝试不同的方法?现在,旧版浏览器的映射速度非常慢。

1 个答案:

答案 0 :(得分:2)

如果您知道容器的所有子项是您感兴趣的输入元素,则可以使用

访问一个元素
var input = $container.children[17];

这应该比搜索具有特定类的孩子快得多。你甚至可以考虑完全放弃这门课程。

jQuery:如果$container是一个jQuery对象 - 它看起来像是 - 你必须使用像

这样的东西
var input = $container.get().children[17];

直接访问DOM元素

JsPerf:我做了一个小jsPerf来比较JS .children和jQuery find,这表明它实际上更快。