簡體   English   中英

jQuery:拆分 <td> 從 <tr>

[英]jQuery: Split <td> from <tr>

我有一個包含<tr><td>的字符串。 我想將<td>的數據拆分為一個數組。 這樣:

<tr>
 <td>Test</td>
 <td>Hey</td>
</tr>
<tr>
 <td>Test2</td>
 <td>Hey2</td>
</tr>

成為:

array[0] = { test, hey }
array[1] = { test2, hey2 }
var originalString = "<tr><td>Test</td><td>Hey</td></tr><tr><td>Test2</td><td>Hey2</td></tr>";
var targetArray = [];

$(originalString) /*.find("tr")*/ .each(function(index, tr) {
  targetArray[index] = $("td", tr).map(function(index, td) {return $(td).text();});
});

jQuery的? 為了什么?

var array = [];
var strArray = "Test Hey Test2 Hey2".split(" ");

for (int i = 0; i < strArray.length; i += 2) {
   array[i] = [strArray[i], strArray[i + 1]];
}

編輯(根據您的編輯)

var array = new Array();
$("tr").each(function() {
    array.push([ $(this).find("td:eq(1)").text(), $(this).find("td:eq(2)").text() ]);
});

編輯:這是下面( 我在jQuery 1.4.2上測試 )的JQuery版本短得多:

function split(s) {
    return $.map(s.split('<tr>').slice(1), function(i) {
        return [$.map(i.split('<td>').slice(1), function(i) {
            return i.split('</td>')[0]
        })]
    })
}
var L = split('<tr><td>Test</td><td>Hey</td><tr><td>Test2</td><td>Hey2</td></tr>');

這是以前的原始JavaScript版本,它可能仍比上述版本快:

function split(s) {
    var L = s.split('<tr>');
    var rtn = [];
    for (var x=1; x<L.length; x++) {
         var iL = L[x].split('<td>')
         iRtn = []
         for (var y=1; y<iL.length; y++) {
             iRtn.push(iL[y].split('</td>')[0]);
         }
         rtn.push(iRtn)
    }
    return rtn;
}
var L = split('<tr><td>Test</td><td>Hey</td><tr><td>Test2</td><td>Hey2</td></tr>');

我已經測試過它可以在帶有表的基本字符串上使用,但是它不會不轉義,例如&nbsp; 等等,顯然不會處理嵌套表。 僅使用字符串拆分方法應該會更快,但是我敢肯定,可以使用JQuery $(x).map來完成。 它還要求表<tr><td>在編寫時要小寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM