jQuery Selector查找td的内容

时间:2012-06-14 04:37:16

标签: jquery

我的HTML结构如下所示:

<div id="mainDiv">
<table></table>
<table></table>
<table>
<tr>
<td id="first">FirstCell</td><td id="second">SecondCell</td>
</tr>
<tr>
<td></td><td></td>
</tr>
</table>
</div>

现在我想根据第一个td的值找到第二个td的内容。

我试过以下但似乎没有用。

$("#mainDiv tr td:contains('first')").each(function(){
                var secondCell = $(this).find('#second').value();
            });

任何帮助都将受到高度赞赏。

5 个答案:

答案 0 :(得分:4)

根据您的html结构,您可以实现您想要的效果

$("#mainDiv tr td:contains('First')").each(function(){
                var secondCell = $(this).next().text();
                console.log(secondCell);
            });​

Working Fiddle

与@Blender一样,.value()不是函数,请改用.text()

答案 1 :(得分:1)

值不是有效的方法。

您应该根据要求使用其中一种。

.html()  // for html content.
.text()  // for text content.
.val()   // for value attribute. Like value of input element.

答案 2 :(得分:0)

.value()不是一个功能。您可能正在寻找.text()

查看您的结构,我发现您正在寻找相对于#second的{​​{1}}。是否有多个元素#first?如果是这样,您将会遇到jQuery的 lot 问题,因为id="second"属性对于单个元素来说是唯一的。如果该属性用于标识多个元素,则应使用id而不是class

答案 3 :(得分:0)

当你使用each而不是id时,应该使用类名,试试这个:

$("#mainDiv tr td:contains('first')").each(function(){
    var secondCell = $(this).siblings('.second').text();
});

答案 4 :(得分:0)

当你说找到时,你的意思是使用正则表达式吗?或者与第一个的关系。

如果通过关系,那么这将起作用

$("#mainDiv tr td:contains('first')").each(function(){
            var secondCell = $(this).next().html();
        });

.text()有时比.html()更好,具体取决于你在做什么。有关工作示例和更多信息,请参阅here

如果通过Regex,您必须在第一个<td>中提供您正在寻找的内容。