我想获取其中包含特定单词/字符串的所有行,并将其存储在数组中 我有一个字符串如下
<tr>
<td>Total</td>
<td>123</td>
<td>567</td>
</tr>
<tr>
<td>ABC</td>
<td>123</td>
<td>567</td>
</tr>
<tr>
<td>XYZ</td>
<td>123</td>
<td>567</td>
</tr>
<tr>
<td>Total</td>
<td>7676</td>
<td>8767</td>
</tr>
我想获取一个字符串为Total且值应该存储在数组中的行
因此输出
<tr>
<td>Total</td>
<td>123</td>
<td>567</td>
</tr>
<tr>
<td>Total</td>
<td>7676</td>
<td>8767</td>
</tr>
使用字符串“Total”
获取行的正则表达式应该是什么答案 0 :(得分:0)
IN JQUERY UR SOLUTION WILL ---&gt;
var tbl = $('#tblId')
var array = [];
$('tr td' ,tbl).each(function(){
var htmlstring = (this).innerHTML;
if(htmlstring == 'Total')
{
if((this).innerHTML == 'Total')
{
$('td', this.parentNode).each(function(){
array.push(this);
});
}
}
});
alert(array);
答案 1 :(得分:0)
要为每个具有单词“Total”的单元格的行构建数组,您可以使用此正则表达式:
(?<=<tr>\s*<td>Total</td>)(\s*<td>\d+</td>)+(?=\s*</tr>)
这将为您提供以下2场比赛:
<td>123</td>
<td>567</td>
和
<td>7676</td>
<td>8767</td>
在这些匹配项上,您可以使用此正则表达式进行拆分以获得数组作为回报:
\D+
答案 2 :(得分:0)
使用jQuery的好解决方案:
http://jsfiddle.net/robfarmer/KaGBL/2/
<强> HTML:强>
Source
<table id="source">
<tr>
<td>Total</td>
<td>123</td>
<td>567</td>
</tr>
<tr>
<td>ABC</td>
<td>123</td>
<td>567</td>
</tr>
<tr>
<td>XYZ</td>
<td>123</td>
<td>567</td>
</tr>
<tr>
<td>Total</td>
<td>7676</td>
<td>8767</td>
</tr>
</table>
Results
<table id="results"></table>
Array Results:
<ul id="arrayResults"/>
<强>的Javascript 强>
$(document).ready(function() {
$("#source tr td:contains('Total')").closest("tr").clone().appendTo("#results");
var cells = [];
$("#source tr td:contains('Total')").closest("tr")
.children("td").not(":contains('Total')").each(function(index, element) {
cells.push($(element).text());
});
$(cells).each(function(index, element) {
$("#arrayResults").append($("<li>").text(element));
});
});