我有以下示例HTML代码:
<tr>
<td align="center" headers=" " class="data"><input type="checkbox" name="the-id" value="4222816"></td>
<td headers="HDR1" class="data">RED</td>
<td headers="HDR2" class="data">YELLOW</td>
</tr>
基于以上所述,使用jQuery,我希望能够从输入前进到下一个td元素以获取值&#34; RED&#34;
我认为它应该是这样的:
$("input[value="4222816"]").closest('td')
但不确定如何获得&#34; RED&#34;
的td值答案 0 :(得分:2)
closest
适用于祖先元素。您正在寻找parent().next()
:parent
前往包含td
的{{1}},然后next
转到其后的下一个元素:
input
但是:如果您有多个匹配var text = $('input[value="4222816"]')
.parent()
.next()
.text();
的元素,由于jQuery的基于集合的特性,它将为您提供所有的文本。 (text
在这方面在jQuery世界中是不寻常的。绝大多数jQuery的访问器只会给你集合中第一个元素的值,但是input[value="4222816"]
给你的值来自集合中的所有元素。)
因此,如果您有多个匹配元素,则需要缩小选择器或将其缩小为一个元素。
这是一个通过.first
使用第一个匹配元素的示例;但如果只有一场比赛,你就不需要这样做了:
text
&#13;
$("#result").text(
$('input[value="4222816"]')
.first()
.parent()
.next()
.text()
);
&#13;
如果你需要更进一步的那个紧接下一个元素,它将是<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td align="center" headers=" " class="data">
<input type="checkbox" name="the-id" value="4222816">
</td>
<td headers="HDR1" class="data">RED</td>
<td headers="HDR2" class="data">YELLOW</td>
</tr>
<tr>
<td align="center" headers=" " class="data">
<input type="checkbox" name="the-id" value="4222816">
</td>
<td headers="HDR1" class="data">BLUE</td>
<td headers="HDR2" class="data">GREEN</td>
</tr>
</tbody>
</table>
<p>The text of the target <code>td</code> is: <span id="result"></span></p>
而不是.nextAll("some-selector").first()
。 (注意:不要被.next()
选择带有选择器的事实所迷惑。它没有找到下一个匹配元素。它要么找到下一个元素,如果它匹配,要么找不到它没有按&#39;。T)
答案 1 :(得分:0)