[英]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>');
我已經測試過它可以在帶有表的基本字符串上使用,但是它不會不轉義,例如
等等,顯然不會處理嵌套表。 僅使用字符串拆分方法應該會更快,但是我敢肯定,可以使用JQuery $(x).map
來完成。 它還要求表<tr>
和<td>
在編寫時要小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.