这段代码正常运行,但我认为这是在错误的标签上。在这里我相信它在aaaaa的第一场比赛中说,返回下一个div的单元格值,因为它恰好在潜水中。但是现在我也希望在比赛中拉出第3个td的值。如何更改此代码,以便我可以使用它在找到匹配项时获取两个后续单元格。
var bodyprefix = $('#issuetbl td:contains(aaaa)').siblings().find('div').html();
例如,给定aaaa,我想要var1 = whatever和var2 = cccc
我可以运行两次,但是想要基于索引或nth-child的相同功能。
<tr>
<td>aaaa</td>
<td><div>whatever</div></td>
<td>cccc</td>
</tr>
<tr>
<td>1111</td>
<td><div>something</div></td>
<td>2222</td>
</tr>
答案 0 :(得分:1)
使用nextAll
代替siblings
:
var bodyprefixes = [];
$('#issuetbl td:contains(aaaa)').nextAll().find('div').each(function(i, k) {
bodyprefixes.push($(k).html());
});
bodyprefixes
现在是所有值的数组。
答案 1 :(得分:0)
为了说明目的,这比您要求的部分要多一些,但允许更多的灵活性:
<script type="text/javascript">
$(document).ready(function(){
var str = 'aaaa';
var bodyprefixes = [];
$("tr").each(function(k,v){
var tds = $(this).children();
var len = tds.length;
$.each(tds, function(x,y){
b = $(y).html();
if(b == str){
for(var i=0;i<len-1;i++){
bodyprefixes.push($(tds[i+1]).html());
}
}
});
});
$.each(bodyprefixes, function(u,w){
$("#variables").append("Var"+u+"= "+w+" <br>");
});
});
</script>
<table id="issuetbl" border="1">
<tr>
<td>aaaa</td> <td><div>whatever</div></td> <td>cccc</td> </tr>
<tr> <td>1111</td> <td><div>something</div></td> <td>2222</td> </tr>
</table>
<div id="variables"></div>