0

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

4

1 回答 1

2

如果您知道容器的所有子元素都是您感兴趣的输入元素,则可以使用以下命令访问一个元素

var input = $container.children[17];

这应该比寻找特定班级的孩子要快得多。你甚至可以考虑完全放弃课程。

jQuery:如果$container是一个 jQuery 对象——它看起来就是——你必须使用类似的东西

var input = $container.get().children[17];

直接访问 DOM 元素

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

于 2013-09-19T09:32:18.593 回答