jQuery Selector查找td的内容
我的HTML结构如下所示:
FirstCell SecondCell
现在我想根据第一个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,您必须在第一个
提供您正在寻找的内容。