0

我有一个代码:

<table>
    <tr>
        <td>
            <input type="text" value="1" />
            <input id="button" type="button" value="Click me!" />
        </td>
    </tr>
</table>

我想input[type="text"]通过下面的代码获得价值,但它不起作用,请帮助我

<script type="text/javascript">
    $(document).ready(function() {
        $("#button").bind("click", function() {
            alert($(this).siblings().find('input[type="hidden"]').val(););
        });
    });
</script>
4

8 回答 8

3

.find()搜索儿童,所以你不能在这里使用它。只需使用siblings()

$(this).siblings('input').val()
于 2013-09-12T07:50:28.280 回答
2

那么第一个问题是你试图找到隐藏的输入,而不是基于文本的输入。您还需要将过滤器移动到兄弟姐妹调用中以使其正常工作,尽管您确实也有一个额外的分号:

$(document).ready(function() {
    $("#button").bind("click", function() {
        alert($(this).siblings('input[type="text"]').val());
    });
});

JSFiddle

于 2013-09-12T07:54:24.037 回答
2

您需要在兄弟姐妹中而不是在兄弟姐妹的后代中找到。

  alert($(this).siblings('input[type="hidden"]').val()); 
于 2013-09-12T07:49:55.683 回答
2

尝试这个。

$("#button").click(function() {
            alert($(this).prev('input[type="text"]').val());
        });

演示Here

于 2013-09-12T07:50:33.727 回答
1

use jQuery prev() as in alert($(this).prev().val());

It gets the immediately preceding sibling.

于 2013-09-12T07:48:55.700 回答
1

Try this.

<script type="text/javascript">
    $(document).ready(function() {
        $("#button").bind("click", function() {
            alert($(this).parent().find('input[type=text]').val());
        });
    });
</script>
于 2013-09-12T07:49:03.460 回答
1

首先,您的输入类型text不是hidden. 您正在使用hiddenJquery 获取数据,然后在隐藏时使用如下:

$(document).ready(function() {
    $("#button").bind("click", function() {            
        alert($(this).siblings('input[type="hidden"]').val());
    });
});

如果这是文本:

 $(document).ready(function() {
    $("#button").bind("click", function() {            
        alert($(this).siblings('input[type="text"]').val());
    });
});

演示

于 2013-09-12T07:55:52.820 回答
0

change

alert($(this).siblings().find('input[type="hidden"]').val());

to

alert($(this).siblings().find('input[type="text"]').val());
于 2013-09-12T07:49:05.120 回答