大佬教程收集整理的这篇文章主要介绍了使用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,请注明来意。