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

コンテナのすべての子が関心のある入力要素であることがわかっている場合は、次のようにして 1 つの要素にアクセスできます。

var input = $container.children[17];

これは、特定のクラスを持つ子を検索するよりもはるかに高速です。クラスを完全に放棄することも考えられます。

jQuery: jQuery オブジェクトの場合$container(そのように見えます)、次のようなものを使用する必要があります

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

DOM 要素に直接アクセスするには

JsPerf: JSと jQueryを比較するために小さなjsPerfを実行しました。.childrenfind

于 2013-09-19T09:32:18.593 に答える