2016-07-20 62 views
0

我試圖解析HTML表:jQuery的HTML表深灰色

<table id="compare_multi" class="" data-intro=""> 
    <thead class='header'> 
    <tr> 
     <th colspan="2"> 
      <span class="pull-right"></span> 
     </th> 

      <th class="center"> 

      </th> 

     <th></th> 
    </tr> 
    </thead> 
    <tbody> 

     <tr> 
      <th class="category" colspan="" style="padding: 10px;"></th> 
     </tr> 
     <tr class="valuerow"> 

      <td style="width: 25px">122</td> 
      <td></td> 
      @foreach 
      { 
       <td class="center tdvalue">INIB</td> 
       <td class="center tdvalue">4</td> 
       <td class="center tdvalue">4</td> 
       <td class="center tdvalue">INIB</td> 
      } 
      <td></td> 
     </tr> 

    </tbody> 
</table> 

的Jquery:

var row = []; 
    $("#compare_multi tr").each(function() 
    { 
     $this = $(this); 
     var tdvalue = $this.find(".tdvalue").text(); 
     row.push(tdvalue); 

    }); 
    console.log(row); 

我試圖解析表:我得到的結果一樣follwoing

[「INIB 4 4 INIB」,「12 4 9 1」,「2 2 2 INIB」]

我希望它是這樣的:

Array 1: 
0: INIB 
1: 4 
2: 4 
3: INIB 

Array 2: 
. 
. 
. 
. 
. 

我在做什麼錯? 請幫助

+0

什麼是INIB?你可以創建一個SO片段,用jsFiddle來重現你正在談論的問題嗎?它會更容易幫助你... –

+0

不用擔心INIB它只是文本中的​​ –

+0

我並不擔心:-)只是想幫忙,沒有實際的代碼就有點困難 –

回答

1

的問題與您的代碼是$this.find(".tdvalue").text()返回一個字符串,這是所有".tdvalue"文本的級聯,而不是一個數組喜歡你的預期。你應該在這個陣列上單獨做.each(),爲了獲得分離td的值到一個數組(爲表中的每個tr

考慮到你的HTML,你可能是指這樣的:

var rows = []; // the result array 
    $("#compare_multi tr").each(function() { 
     $tr = $(this); 
     var row = []; // array for each tr 
     $tr.find(".tdvalue").each(function(){ 
      row.push($(this).text()); //separate value for each tdvalue 
     }); 
     rows.push(row); 

    }); 
    console.log(rows); 
+0

謝謝你這個 –