0

このコードは機能していますが、間違ったタグに固定されていると思います。ここでは、aaaaa の最初の一致で、次の div のセル値を返すと言っていると思います。しかし、今は試合で 3 番目の td の値も取得したいと考えています。このコードを変更して、一致が見つかったときに後続のセルの両方を取得できるようにするにはどうすればよいですか。

var bodyprefix  = $('#issuetbl td:contains(aaaa)').siblings().find('div').html();

たとえば、aaaa が指定された場合、var1=whatever および var2=cccc が必要です

2 回実行しても問題ありませんが、index または 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>
4

2 に答える 2

1

nextAllの代わりに使用siblings:

var bodyprefixes = [];
$('#issuetbl td:contains(aaaa)').nextAll().find('div').each(function(i, k) {
    bodyprefixes.push($(k).html());
});

bodyprefixesすべての値の配列になりました。

于 2011-08-04T21:45:22.767 に答える
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>
于 2011-08-04T22:07:58.893 に答える