我不是JavaScript的专家!
我有一个简单的数组/对象需要添加到JavaScript表中。 像这样:
var columns = {
"0": { "styles": "width:22%;" },
"1": { "styles": "width:13%;" },
"2": { "styles": "width:13%;" },
"3": { "styles": "width:13%;" },
"4": { "styles": "width:13%;" },
"5": { "styles": "width:13%;" },
"6": { "styles": "width:13%;" }
};
然而,“columns”变量必须根据我有多少记录而改变...所以0总是相同(22%),但1-5取决于用户定义的列数,6是“总“列。 1-6的宽度也会改变。
我知道如何获取列数,但不知道如何创建列列表并生成类似上面“列”声明的内容。
答案 0 :(得分:1)
var columns = [
{ "styles": "width:22%;" },
{ "styles": "width:13%;" },
{ "styles": "width:13%;" },
{ "styles": "width:13%;" },
{ "styles": "width:13%;" },
{ "styles": "width:13%;" },
{ "styles": "width:13%;" }
];
// add a elements to array
for (i = 0; i < 10; i++) {
var width = '12'; // whatever width you want for each element.
columns.push( '{ "styles": "width:' + width + '%;" }' );
}
答案 1 :(得分:1)
您可以尝试这样的事情:
var table = document.getElementById('myTable'), // table to perform search on
row = table.getElementsByTagName('tr')[0],
columnsCount = row.getElementsByTagName('td').length,
columns = {0: { styles: 'width: 22%' }};
for (var i = 1; i < columnsCount; i++) {
columns[i] = {styles: 'width: ' + Math.floor((100-22) / (columnsCount - 1)) + '%'}
row.getElementsByTagName('td')[i].style = columns[i].styles;
}
console.log(columns);
以下是一个工作示例:http://jqversion.com/#!/afxvKvE