点击时,我试图通过班级i_search
获取兄弟姐妹的价值。
<tr>
<td>12</td>
<td class="request">24</td>
<td>36</td>
<td><a class="i_search" href="javascript:;" title="Detalle">btn</a></td>
</tr>
<tr>
<td>6</td>
<td class="request">12</td>
<td>18</td>
<td><a class="i_search" href="javascript:;" title="Detalle">btn</a></td>
</tr>
<tr>
<td>3</td>
<td class="request">6</td>
<td>9</td>
<td><a class="i_search" href="javascript:;" title="Detalle">btn</a></td>
</tr>
这里是我的jQuery:
$(".i_search").on("click", function(event){
event.preventDefault();
var numRos = $(this).find(".request:first").val();
});
console.log(numRos);
但它显示null
答案 0 :(得分:1)
您有两种选择,第一种:
var numRos = $(this).closest('tr').find('.request').text();
或者:
var numRos = $(this).parent().siblings('.request').text();
val()
仅适用于交互式表单元素,您想要的是<td>
的文本,因此应使用text()
。
jQuery中的Getters将返回仅由选择器匹配的第一个元素的文本,在本例中为文本。在你的情况下,只有一个,所以它将适当地工作。
参考文献:
答案 1 :(得分:1)
这就是你需要的:
$(".i_search").on("click", function(event){
event.preventDefault();
var numRos = $(this).parents('tr').find('.request').html();
alert(numRos);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>12</td>
<td class="request">24</td>
<td>36</td>
<td><a class="i_search" href="javascript:;" title="Detalle">btn</a></td>
</tr>
<tr>
<td>6</td>
<td class="request">12</td>
<td>18</td>
<td><a class="i_search" href="javascript:;" title="Detalle">btn</a></td>
</tr>
<tr>
<td>3</td>
<td class="request">6</td>
<td>9</td>
<td><a class="i_search" href="javascript:;" title="Detalle">btn</a></td>
</tr>
</table>
答案 2 :(得分:0)
jQuery find
搜索与选择器匹配的元素的子元素,您必须遍历DOM并使用最接近的匹配其父级,然后您可以使用find。
尝试:
$(".i_search").on("click", function(event){
event.preventDefault();
var numRos = $(this).closest("tr").find(".request").text();
console.log(numRos);
});