jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用jQuery动态创建元素大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@
我正在基于从处理程序返回的数组构建jQuery中的复选框项列表.

包含元素是下面的.listContainer元素,然后我要添加到其中的每个动态元素采用.listContainerItem元素的形式.每个项目都有基于创建它的数组项的复选框值和标签.

<div class="listContainer">
    <div class="listContainerItem">
        <input type="checkBox" value="1" />
        <div class="listContainerItemLabel">CheckBox 1</div>
    </div>
</div>

在传递数组的函数的位置,创建它的最有效方法是什么?我一直在努力完成它,如下所示,但很快遇到了主要的性能问题.

function AddItemToListContainer(item) {
    var currentItems = $j("#listContainerAvailable .listContainerItem");
    if ($j.grep(currentItems,function (e) { return $j(e).find(":checkBox:first").val() == item.Id; }).length === 0) {
        labelDiv = $j("<div />").addClass("listContainerItemLabel").html(item.Text);
        itemToAdd = $j("<div />").addClass("listContainerItem").append("<input type=\"checkBox\" value=\"" + item.Id + "\" />").append(labelDiv);
        currentItems.append(itemToAdd);
    }
}

我看过.map函数,但不确定如何实现它.有人能指出我正确的方向吗?

解决方法

我会从这样的事情开始:

var $container = $j('#listContainerAvailable');
var checkBoxes = {};

function AddItemToListContainer(item) {
    if (checkBoxes[item.Id]) return false;

    checkBoxes[item.Id] = true;

    var $item = $j('<div />',{
        'class': 'listContainerItem',}).appendTo($container);

    $j('<input />',{
        'type': 'checkBox','value': item.Id
    }).appendTo($item);

    $j('<div />',{
        'class': 'listContainerItemLabel','text': item.Text
    }).appendTo($item);
}

只要在创建页面时不存在这些元素,就可以将它们添加到哈希表中,而不是通过DOM进行搜索.我想你也会受益于像mustache.js这样的JS模板引擎

大佬总结

以上是大佬教程为你收集整理的使用jQuery动态创建元素全部内容,希望文章能够帮你解决使用jQuery动态创建元素所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: