根据我看到的一个帖子。我正在通过单击超链接创建一个临时数组元素。我唯一的问题是它可以生成重复的元素,直到现在还没有解决:
var items = new Array();
$("ul.dropdown li a").click(function(e)
{
e.preventDefault();
var id = $(this).attr('href');
var name = $(this).text();
if(!$.findFromArray('id', id, items))
{
return false;
}
else
{
items.push({
"id" : id,
"name": name
});
//genate row
var newRow = $("<tr itemId=\"" + id + "\" />")
.appendTo(".form_list.left tbody")
.append("<td>" + name + "</td>")
.append("<td><a href=\"#\" class=\"deleteRow\">delete</a></td>");
$(".deleteRow", newRow).click(function(e) {
e.preventDefault();
items = $.removeFromArray('id', $(this).closest("tr").attr("itemId"), items);
$(this).closest("tr").remove();
});
}
});
我创建了一个函数“$.FindFromArray”,它搜索插入的数组,如果有则返回 FALSE,以避免在数组中插入并在表中生成一行:
$.findFromArray = function(property, value, arr)
{
$.each(arr, function(elem, index)
{
if(elem[property] === value)
{
return false;
}
});
};
但是这个函数总是返回 FALSE。
因为我可以在插入元素之前避免重复?如果有更好的方法来做到这一点......我希望我能提供帮助。