jQuery 在匹配后返回第二个表格单元格?

发布于 2024-11-27 18:32:24 字数 612 浏览 3 评论 0原文

该代码有效,但我认为它锚定在错误的标签上。这里我相信它是说在 aaaaa 的第一场比赛中,返回下一个 div 的单元格值,因为它恰好在潜水中。但现在我也想在一场比赛中拉出第三个 td 的值。如何更改此代码,以便在找到匹配项时可以使用它获取两个后续单元格。

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

例如,给定 aaaa,我想要 var1=whatever 和 var2=cccc

我可以运行两次,但想要基于索引或第 n 个子项的相同函数。

<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>

This code is working, but I think it's anchoring on the wrong tag. Here I believe it's saying on the first match of aaaaa, return the cell value for the next div, because it happens to be under a dive. But now that I also want to pull the value of 3rd td on a match. How can I change this code so that I can use it get both of the subsequent cells when a match is found.

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

For example, given aaaa, I want var1=whatever and var2=cccc

I'm okay with running it twice, but would like the same function based on index or 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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

べ映画 2024-12-04 18:32:24

使用 nextAll 而不是 siblings

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

bodyprefixes 现在是所有值的数组。

Use nextAll instead of siblings:

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

bodyprefixes is now an array of all the values.

深海少女心 2024-12-04 18:32:24

这比您出于说明目的所要求的部分多一点,但具有更大的灵活性:

<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>

This is a little more than what you asked for with portions for illustrative purposes, but allows for more flexibility:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文