JS中有这样一个数组var arry2 = ["湖北", "上海", "北京"];将数组中的元素循环添加到列表中,添加之前的列表如:
添加之后的列表为:
这个有什么好的办法没??
给地址一列的单元格添加一个标识,比如将class设为'address',然后遍历table,找到class为address的单元格,将数组的元素依次取出添加到里面。可以使用数组的shift方法。
我用for循环arry2数组,然后给最后一列赋值,但是每一列的值都是数组的最后一个元素,这是为什么呢?
@gyangjing: 那肯定是你的代码写错了。而且你的需求不明确,如果有人的地址重复怎么办?没有对应关系吗?
@逐影: 暂时不管是否有重复,只要得到这样的结果就行
这玩意儿看起来没那么难,难道不是循环一下就行了?
你可以动手试下就知道了
@gyangjing: 动手试了一下,确实很简单,已经做出来了。
@顾晓北: 这样的效果我也做出来了,但是,如果姓名和地址这两列都是动态加载的,比如姓名这一列是在数组arry1= ["张三", "李四", "王五"]中,地址一列在var arry2 = ["湖北", "上海", "北京"],当我点击添加的时候,把这两个数组中的元素添加到table中,如图:
每点击一次添加,就添加一次,这又该如何实现?
@gyangjing: 自己想办法
直接上代码:
$("table tr").each(function(i,e){
$(e).find("td:last").append(arry2[i]);
});
本人没有测试过,思路是这样的。你可以试试看效果。仅供参考。
append改成text。写错了。你是改文本
var arry1=["湖北","上海","北京"]
var arry2 = ["湖北", "上海", "北京"]
var tb = $("#MyTB tr").eq(-1);
var trHTML;
for (var i = 0; i < arry1.length; i++) {
trHTML += "<tr><td>" + arry1[i] + "</td><td>" + arry2 [i]+ "</td></tr>";
}
tb.after(trHTML);
var arry2=["张三","李四","王五"]