鉴于此表:
<table id="issuetbl">
<tr> <td>aaaa</td> <td><div>whatever</div></td> <td>cccc</td> </tr>
<tr> <td>1111</td><td class="ms-vb"><p>What about rest of line. </p><p> this needs to show uptoo</p></td> <td>2222</td> </tr>
<tr> <td>3333</td> <td><div>else</div></td> <td>4444</td> </tr>
</table>
这个jQuery脚本在匹配后拉出两个tds(这里是1111)..至少在我们在内容中添加一些换行符之前它已经完成了。它现在只能拉到最后。只返回: 剩下的线路怎么样?
var bodyprefixes = [];
$('#issuetbl td:contains(1111)').nextAll().each(function(i, k) {
var td = $(k), div = td.children();
bodyprefixes.push(div.length ? div.html() : td.html());
});
alert(bodyprefixes[0]);
alert(bodyprefixes[1]);
这是https://stackoverflow.com/users/262056/stephen
的一个很好的解决方案这是在这里工作: http://jsfiddle.net/8RvgA/3/
有人知道如何获得1111的完整标准吗?
答案 0 :(得分:0)
类似的东西:
$('#issuetbl td:contains(1111)').parent()
...不知道如果这是你想要的,我只是在黑暗中拍摄。
答案 1 :(得分:0)
如果您不需要实体:
bodyprefixes.push(td.text());
如果你这样做,你必须遍历td的所有孩子
答案 2 :(得分:0)
不太确定这是否是你想要的。但是如果你只想要同一行中td值为'1111'的所有数据,那么这应该是:http://jsfiddle.net/rkw79/8RvgA/4/
$('#issuetbl td:contains(1111)').nextAll().each(function(i, k) {
bodyprefixes.push($(k).text());
});
使用.text()
将删除标记并忽略所有空格
使用代码进行了更新: http://jsfiddle.net/rkw79/8RvgA/5/
$('#issuetbl td:contains(1111)').nextAll().each(function(i, k) {
bodyprefixes.push($(k).html());
});