如何获得特定的兄弟价值

时间:2014-09-17 20:04:55

标签: javascript jquery

点击时,我试图通过班级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

3 个答案:

答案 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);
});