Javascript Jquery数组在tr iterate中重复记录 我的表格和代码 NewsNo GeoLoc ------ ------ 1美国 2英国 3格 var GloablArr=[]; $(“#btnRefUp”)。单击(函数(){ var newssArr={}; $(“#ntbl>tbody>tr”)。每个(函数(){ newssArr['NewsNo']=$(this.find('td:eq(0)').val(); newssArr['GeoLoc']=$(this.find('td:eq(1)').val(); GloablArr.push(newssArr)
您只创建了对Javascript Jquery数组在tr iterate中重复记录 我的表格和代码 NewsNo GeoLoc ------ ------ 1美国 2英国 3格 var GloablArr=[]; $(“#btnRefUp”)。单击(函数(){ var newssArr={}; $(“#ntbl>tbody>tr”)。每个(函数(){ newssArr['NewsNo']=$(this.find('td:eq(0)').val(); newssArr['GeoLoc']=$(this.find('td:eq(1)').val(); GloablArr.push(newssArr),javascript,jquery,html,Javascript,Jquery,Html,您只创建了对newsArr的引用-此后,您会将相同的属性推送到它,并每次将另一个引用推送到全局数组 一个简单的修复方法是在每次迭代时重新创建一个新对象 $("#ntbl > tbody > tr").each(function () { var newssArr = {}; newssArr['NewsNo'] = $(this).find('td :eq(0)').val(); newssArr['GeoLoc'] = $(this).find('td
newsArr
的引用-此后,您会将相同的属性推送到它,并每次将另一个引用推送到全局数组
一个简单的修复方法是在每次迭代时重新创建一个新对象
$("#ntbl > tbody > tr").each(function () {
var newssArr = {};
newssArr['NewsNo'] = $(this).find('td :eq(0)').val();
newssArr['GeoLoc'] = $(this).find('td :eq(1)').val();
GloablArr.push(newssArr) <-- GlobalArr shows the final item(s) only.
});
您正在一次又一次地更新同一对象,而需要在每个方法的回调函数中初始化对象
var GloablArr = [];
$("#btnRefUp").click(function() {
$("#ntbl > tbody > tr").each(function() {
var newssArr = {};
newssArr['NewsNo'] = $(this).find('td :eq(0)').val();
newssArr['GeoLoc'] = $(this).find('td :eq(1)').val();
GloablArr.push(newssArr)
});
});
或者直接生成对象并推送到数组
var GloablArr = [];
$("#btnRefUp").click(function() {
$("#ntbl > tbody > tr").each(function() {
GloablArr.push({
NewsNo: $(this).find('td :eq(0)').val(),
GeoLoc: $(this).find('td :eq(1)').val()
})
});
});
您甚至可以使用method而不是method来简化代码
您正在再次更新同一对象,并在循环内重新初始化var newsarr={};
。
元素没有值。它们有text()
或html()
var GloablArr = [];
$("#btnRefUp").click(function() {
$("#ntbl > tbody > tr").each(function() {
var newssArr = {};
newssArr['NewsNo'] = $(this).find('td :eq(0)').val();
newssArr['GeoLoc'] = $(this).find('td :eq(1)').val();
GloablArr.push(newssArr)
});
});
var GloablArr = [];
$("#btnRefUp").click(function() {
$("#ntbl > tbody > tr").each(function() {
GloablArr.push({
NewsNo: $(this).find('td :eq(0)').val(),
GeoLoc: $(this).find('td :eq(1)').val()
})
});
});
var GloablArr;
$("#btnRefUp").click(function() {
GloablArr = $("#ntbl > tbody > tr").map(function() {
return {
NewsNo: $(this).find('td :eq(0)').val(),
GeoLoc: $(this).find('td :eq(1)').val()
};
}).get(); // get the result as array
});