jQuery Selector查找td的内容

我的HTML结构如下所示:

FirstCellSecondCell

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

我试过以下但似乎没有工作。

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

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

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

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

工作小提琴

就像@Blender说的那样.value()不是函数,而是使用.text()

值不是有效的方法。

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

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

.value()不是函数。 你可能正在寻找.text()

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

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

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

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

如果通过关系,那么这将有效

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

.text()有时比.html()好,这取决于你在做什么。 有关工作示例和更多信息,请参见此处 。

如果通过Regex,您必须在第一个

提供您正在寻找的内容。