将HTML表数据转换为javascript数组
我有一个html表格,以旋转木马的形式显示我网站上显示的图像。图像的显示位置如表所示。 此表的一个特性是它使用jQuery.sortable()函数。如果将图像移动到表格顶部,则该图像的位置将更改为0,随后的位置也将更改。 这一切都很好,我能够捕获变量中的位置。 但是,我现在需要做的是jQuery将数据发布到表中,这样我就可以用新位置更新数据库中的字段以及任何其他已更新的信息 理想情况下,我需要能够发布一个javascript关联数组,其中图像ID作为键,然后是图像信息,如子数组中的位置和位置 如果它是php,我想它会像这样将HTML表数据转换为javascript数组,javascript,php,jquery,html,jquery-post,Javascript,Php,Jquery,Html,Jquery Post,我有一个html表格,以旋转木马的形式显示我网站上显示的图像。图像的显示位置如表所示。 此表的一个特性是它使用jQuery.sortable()函数。如果将图像移动到表格顶部,则该图像的位置将更改为0,随后的位置也将更改。 这一切都很好,我能够捕获变量中的位置。 但是,我现在需要做的是jQuery将数据发布到表中,这样我就可以用新位置更新数据库中的字段以及任何其他已更新的信息 理想情况下,我需要能够发布一个javascript关联数组,其中图像ID作为键,然后是图像信息,如子数组中的位置和位置
Array
(
[45] => Array
(
[name] => Image 45
[location] => img/Banner-45.jpg
[url] => http://www.exampleurl2.com
[position] => 0
)
[56] => Array
(
[name] => Image 56
[location] => img/Image-56.jpg
[url] => http://www.exampleurl2.com
[position] => 1
)
)
我可以循环并更新表中的值。
到目前为止,我所有在javascript/jquery中创建类似格式数组的尝试都失败了
我有一个循环,它捕获jQuery中的细节
$("#banners tbody tr").each(function () {
var id = $('td:first', $(this)).text();
var name = $('td:nth(1)', $(this)).text();
var pos = $('td:nth(2)', $(this)).text();
var url = $('td:nth(3)', $(this)).text();
var loc = $('td:nth(5)', $(this)).text();
});
我知道这不是从表中捕获数据的最有效的方法,但我对jQuery比较陌生。
现在我需要将它们插入到某种形式的关联数组中,ID作为循环中的键。
任何指向正确方向的指针或更有效的方法都将不胜感激 可以说JavaScript中没有关联数组。在JavaScript中,数组是一维的,您可以根据数组中的索引检索项。您正在谈论对象或对象文字。下面我为您编写了一个示例和示例结构
var saveObj = {}; //Setup a blank object for the data;
$("#banners tbody tr").each(function () {
var id = $('td:first', $(this)).text();
saveObj[id] = {
name : $('td:nth(1)', $(this)).text(),
pos : $('td:nth(2)', $(this)).text(),
url : $('td:nth(3)', $(this)).text(),
loc : $('td:nth(5)', $(this)).text()
};
});
这将设置一个空白的对象文本,首先称为saveObj
。可以说,这是你的空白画布。然后在你的循环中,你像平常一样抓取id。这将是对象中的键,键的值将是我们在循环中动态创建的另一个对象文本。使用与变量(名称、pos、url、loc)相同的键及其数据值,与您现在获取它们的方式相同。你的结构会是这样的
var saveObj = {
"12" : {
name : "YourName",
pos : "YourPos",
url : "YourUrl",
loc : "YourLoc"
},
"16" : {
name : "YourName2",
pos : "YourPos2",
url : "YourUrl2",
loc : "YourLoc2"
}
};
可以说,JavaScript中没有关联数组。在JavaScript中,数组是一维的,您可以根据数组中的索引检索项。您正在谈论对象或对象文字。下面我为您编写了一个示例和示例结构
var saveObj = {}; //Setup a blank object for the data;
$("#banners tbody tr").each(function () {
var id = $('td:first', $(this)).text();
saveObj[id] = {
name : $('td:nth(1)', $(this)).text(),
pos : $('td:nth(2)', $(this)).text(),
url : $('td:nth(3)', $(this)).text(),
loc : $('td:nth(5)', $(this)).text()
};
});
这将设置一个空白的对象文本,首先称为saveObj
。可以说,这是你的空白画布。然后在你的循环中,你像平常一样抓取id。这将是对象中的键,键的值将是我们在循环中动态创建的另一个对象文本。使用与变量(名称、pos、url、loc)相同的键及其数据值,与您现在获取它们的方式相同。你的结构会是这样的
var saveObj = {
"12" : {
name : "YourName",
pos : "YourPos",
url : "YourUrl",
loc : "YourLoc"
},
"16" : {
name : "YourName2",
pos : "YourPos2",
url : "YourUrl2",
loc : "YourLoc2"
}
};
可以说,JavaScript中没有关联数组。在JavaScript中,数组是一维的,您可以根据数组中的索引检索项。您正在谈论对象或对象文字。下面我为您编写了一个示例和示例结构
var saveObj = {}; //Setup a blank object for the data;
$("#banners tbody tr").each(function () {
var id = $('td:first', $(this)).text();
saveObj[id] = {
name : $('td:nth(1)', $(this)).text(),
pos : $('td:nth(2)', $(this)).text(),
url : $('td:nth(3)', $(this)).text(),
loc : $('td:nth(5)', $(this)).text()
};
});
这将设置一个空白的对象文本,首先称为saveObj
。可以说,这是你的空白画布。然后在你的循环中,你像平常一样抓取id。这将是对象中的键,键的值将是我们在循环中动态创建的另一个对象文本。使用与变量(名称、pos、url、loc)相同的键及其数据值,与您现在获取它们的方式相同。你的结构会是这样的
var saveObj = {
"12" : {
name : "YourName",
pos : "YourPos",
url : "YourUrl",
loc : "YourLoc"
},
"16" : {
name : "YourName2",
pos : "YourPos2",
url : "YourUrl2",
loc : "YourLoc2"
}
};
可以说,JavaScript中没有关联数组。在JavaScript中,数组是一维的,您可以根据数组中的索引检索项。您正在谈论对象或对象文字。下面我为您编写了一个示例和示例结构
var saveObj = {}; //Setup a blank object for the data;
$("#banners tbody tr").each(function () {
var id = $('td:first', $(this)).text();
saveObj[id] = {
name : $('td:nth(1)', $(this)).text(),
pos : $('td:nth(2)', $(this)).text(),
url : $('td:nth(3)', $(this)).text(),
loc : $('td:nth(5)', $(this)).text()
};
});
这将设置一个空白的对象文本,首先称为saveObj
。可以说,这是你的空白画布。然后在你的循环中,你像平常一样抓取id。这将是对象中的键,键的值将是我们在循环中动态创建的另一个对象文本。使用与变量(名称、pos、url、loc)相同的键及其数据值,与您现在获取它们的方式相同。你的结构会是这样的
var saveObj = {
"12" : {
name : "YourName",
pos : "YourPos",
url : "YourUrl",
loc : "YourLoc"
},
"16" : {
name : "YourName2",
pos : "YourPos2",
url : "YourUrl2",
loc : "YourLoc2"
}
};
您可以使用jquery函数遍历表中的所有
,并为行创建数据,然后遍历当前
中列数据的所有
:
var data = [];
var headers = [];
var tb = $('table.table');
var thead = tb.find('thead');
var tbody = tb.find('tbody');
thead.find('th').map(function(i,el){
var $el = $(el);
headers.push($el.attr('class'));
});
tbody.find('tr').map(function(i,el){
var $el = $(el);
var row = {};
$el.find('td').map(function(i,el){
var col = $(el).text();
row[headers[i]] = col;
});
data.push(row);
});
示例JSIDLE:您可以使用jquery函数遍历表中的所有
,并为行创建数据,然后遍历列数据当前
中的所有
:
var data = [];
var headers = [];
var tb = $('table.table');
var thead = tb.find('thead');
var tbody = tb.find('tbody');
thead.find('th').map(function(i,el){
var $el = $(el);
headers.push($el.attr('class'));
});
tbody.find('tr').map(function(i,el){
var $el = $(el);
var row = {};
$el.find('td').map(function(i,el){
var col = $(el).text();
row[headers[i]] = col;
});
data.push(row);
});
示例JSIDLE:您可以使用jquery函数遍历表中的所有
,并为行创建数据,然后遍历列数据当前
中的所有
:
var data = [];
var headers = [];
var tb = $('table.table');
var thead = tb.find('thead');
var tbody = tb.find('tbody');
thead.find('th').map(function(i,el){
var $el = $(el);
headers.push($el.attr('class'));
});
tbody.find('tr').map(function(i,el){
var $el = $(el);
var row = {};
$el.find('td').map(function(i,el){
var col = $(el).text();
row[headers[i]] = col;
});
data.push(row);
});
示例JSIDLE:您可以使用jquery函数遍历表中的所有
,并为行创建数据,然后遍历列数据当前
中的所有
:
var data = [];
var headers = [];
var tb = $('table.table');
var thead = tb.find('thead');
var tbody = tb.find('tbody');
thead.find('th').map(function(i,el){
var $el = $(el);
headers.push($el.attr('class'));
});
tbody.find('tr').map(function(i,el){
var $el = $(el);
var row = {};
$el.find('td').map(function(i,el){
var col = $(el).text();
row[headers[i]] = col;
});
data.push(row);
});
示例JSFIDLE:正是我想要的。给了我我需要的确切结构。再次感谢!不用担心,很高兴我能准确地找到我想要的。给了我我需要的确切结构。再次感谢!不用担心,很高兴我能准确地找到我想要的。给了我我需要的确切结构。再次感谢!不用担心,很高兴我能准确地找到我想要的。给了我我需要的确切结构。再次感谢!不用担心,很高兴我能