Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 传输表并将值存储为键/值对_Javascript_Jquery - Fatal编程技术网

Javascript 传输表并将值存储为键/值对

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

我有一个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</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);
    
            });