【问题标题】:getting the html response into array将html响应放入数组
【发布时间】:2023-03-21 17:19:01
【问题描述】:

我有一个ajax函数,它的响应是一个html表。我需要把它转换成数组。

我的回复如下:

<table>
    <tr>
        <td>4362</td>
        <td>Education</td>
    </tr>
    <tr>
        <td>4373</td>
        <td>Education world</td>
    </tr>
</table>

我需要将其更改为以下数组。

[['4362','Education'],['4373','Education world']]

我已经完成了以下 ajax 代码,但没有给出确切的格式。

success:function(hasil) { 
   var table_response = $.parseHTML($(hasil).filter('table').html());
   console.log($(table_response).each(function(index, tr) {
          $('td', tr).map(function(index, td) {
               return $(td).text()
          })
   }));
}

我也尝试了另一个代码,但它给了我数组中的所有 td 内容

console.log($('td', table_response).map(function(_, el) {  
              return $(el).html()  
}));

【问题讨论】:

标签: javascript jquery arrays ajax


【解决方案1】:

(function (){

  var response = `<table><tr><td>4362</td><td>Education</td></tr>
         <tr><td>4373</td><td>Education world</td>
         </tr>
  </table>`;

    var arr = [];

    $(response).find('tr').each(function(index){
        var row = arr[index] = [];
        $(this).find('td').each(function(i){
            row[i] = $(this).text();
        })
    })
    
    console.log(arr);

})()
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

    【解决方案2】:

    试试这个https://jsfiddle.net/492f9y84/1/

       var arr=[]
       var table_response = $.parseHTML($(hasil).filter('table').html());
       $(table_response).find("tr").each(function(index, tr) {
            var trArr = []
          $(tr).find('td').each(function(index, td) {
               trArr.push($(td).text())
          })
          arr.push(trArr)
       });
    
       console.log(arr)
    

    【讨论】:

      【解决方案3】:

      var result = []; 
      $("#tbl").find("tr").each(function(index, tr) {
            var temp = [];
            $(tr).find("td").each(function(index, td) {
                temp.push($(td).text());
            });
            result.push(temp);
      });
      
      console.log(result);
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <table id="tbl"><tr><td>4362</td><td>Education</td></tr>
             <tr><td>4373</td><td>Education world</td>
             </tr>
      </table>

      【讨论】:

        【解决方案4】:
        function storearrValues()
        {
            var TableData = new Array();
        
            $('#myDemotable tr').each(function(row, tr){
                TableData[row]={
                    "Id" : $(tr).find('td:eq(0)').text()
                    , "Value" :$(tr).find('td:eq(1)').text()
                }    
            }); 
            TableData.shift();  // first row will be empty - so remove
            return TableData;
        }
        var getData=JSON.stingify(storearrValues())
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-19
          • 1970-01-01
          • 1970-01-01
          • 2021-05-29
          • 1970-01-01
          相关资源
          最近更新 更多