Javascript 传输表并将值存储为键/值对
我有一个html表格,比如Javascript 传输表并将值存储为键/值对,javascript,jquery,Javascript,Jquery,我有一个html表格,比如 <table> <tbody><tr><th>Course Name</th> <th>Course ID</th> <th>Value</th> </tr><tr> <td>Course A</td> <td class="asset-id">1616781&l
<table>
<tbody><tr><th>Course Name</th>
<th>Course ID</th>
<th>Value</th>
</tr><tr>
<td>Course A</td>
<td class="asset-id">1616781</td>
<td class="asset-val">1306886</td>
</tr>
<tr>
<td>Course B</td>
<td class="asset-id">723507</td>
<td class="asset-val">1306886</td>
</tr>
<tr>
<td>Course C</td>
<td class="asset-id">723503</td>
<td class="asset-val">1306886</td>
</tr>
到目前为止,我已经尝试过类似的东西,但它不起作用
var myArray = [];
$('.asset-id, .asset-val').each(function(i, obj) {
var tmpObj = {};
var asset_key='';
var asset_text='';
tmpObj[asset_key] = $(".asset-id", this).text();
tmpObj[asset_text] = $(".asset-val", this).text();
myArray.push(tmpObj)
console.log(myArray);
});
非常感谢您的帮助。谢谢您的代码有很多问题:
myArray
是在循环中定义的,因此您总是使用空数组来实例化它asset\u key
和asset\u text
都是空字符串var arr=[];
$('.asset id')。每个(函数(){
arr.push({
'id':$(this.text(),
'值':$(this).sibbines(“.asset val”).text()
});
});
控制台日志(arr)代码>
课程名称
课程ID
价值
课程A
1616781
1306886
课程B
723507
1306886
课程C
723503
1306886
您的代码有很多问题:
myArray
是在循环中定义的,因此您总是使用空数组来实例化它
选择器不起作用,因为您在每个元素上循环
asset\u key
和asset\u text
都是空字符串
以下内容适用于您:
var arr=[];
$('.asset id')。每个(函数(){
arr.push({
'id':$(this.text(),
'值':$(this).sibbines(“.asset val”).text()
});
});
控制台日志(arr)代码>
课程名称
课程ID
价值
课程A
1616781
1306886
课程B
723507
1306886
课程C
723503
1306886
您可以选择所有元素并在其上循环,而不是在行上循环并查找每个td
var id=$('.asset id')
var val=$(“.asset val”)
var结果=[];
每个功能(i、v)的ID{
push({id:+v.textContent,value:+vals.eq(i).text()})
//result.push({id:+ids.eq(i).text(),value:+vals.eq(i).text()})
})
console.log(结果)
课程名称
课程ID
价值
课程A
1616781
1306886
课程B
723507
1306886
课程C
723503
1306886
您可以选择所有元素并在其上循环,而不是在行上循环并查找每个td
var id=$('.asset id')
var val=$(“.asset val”)
var结果=[];
每个功能(i、v)的ID{
push({id:+v.textContent,value:+vals.eq(i).text()})
//result.push({id:+ids.eq(i).text(),value:+vals.eq(i).text()})
})
console.log(结果)
课程名称
课程ID
价值
课程A
1616781
1306886
课程B
723507
1306886
课程C
723503
1306886
谢谢@BenM,实际上myArray
是在外部定义的,我在这里复制代码时出错了。现在修好了。无论如何,谢谢你的帮助,你的代码很好用,也很容易理解。谢谢@BenM,实际上myArray
是在外部定义的,我在这里复制代码时出错了。现在修好了。无论如何,谢谢你的帮助,你的代码很好用,很容易理解。
var myArray = [];
$('.asset-id, .asset-val').each(function(i, obj) {
var tmpObj = {};
var asset_key='';
var asset_text='';
tmpObj[asset_key] = $(".asset-id", this).text();
tmpObj[asset_text] = $(".asset-val", this).text();
myArray.push(tmpObj)
console.log(myArray);
});