3

我的 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();
            });

任何帮助将不胜感激。

4

5 回答 5

4

根据您的 html 结构,您可以像这样实现您想要的

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

工作小提琴

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

于 2012-06-14T04:42:58.733 回答
1

value 不是有效的方法。

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

.html()  // for html content.
.text()  // for text content.
.val()   // for value attribute. Like value of input element.
于 2012-06-14T04:43:09.060 回答
0

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

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

于 2012-06-14T04:39:05.163 回答
0

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

$("#mainDiv tr td:contains('first')").each(function(){
    var secondCell = $(this).siblings('.second').text();
});
于 2012-06-14T04:43:20.247 回答
0

当您说查找时,您的意思是使用正则表达式吗?或通过/与第一个的关系。

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

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

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

如果使用正则表达式,您必须在第一个<td>.

于 2012-06-14T04:53:35.473 回答