从输入[type =“hidden”]获取值时出错

时间:2011-11-18 10:34:36

标签: jquery

index.php中的

<input type="hidden" name="id" value="1" />
<input type="hidden" name="type" value="2" />
在script.js中

$(document).ready(function(){
     $('#button').click(function(){
       var id = $(this).prev('input[type="hidden"][name="id"]').val();
       var type = $(this).prev('input[type="hidden"][name="type"]').val();
       alert(id);
       alert(type);

});

当我运行文件index.php时,结果是未定义的,如何解决它

4 个答案:

答案 0 :(得分:4)

prev()只获得紧接在前的元素,并且至少“id”元素不在按钮之前。

我猜这个按钮和输入共享同一个父级,所以你可能会使用:

var id = $(this).parent().find('input[type="hidden"][name="id"]').val();
var type = $(this).parent().find('input[type="hidden"][name="type"]').val();

如果这不起作用,您需要添加周围的HTML和按钮的HTML。

编辑:另一种选择可能是使用prevAll()而不是prev()

答案 1 :(得分:3)

为什么不从根目录中选择?

>var id = $('input[type="hidden"][name="id"]').val();
>var type = $('input[type="hidden"][name="type"]').val();

答案 2 :(得分:1)

如果使用prev()作为元素名称“id”,则没有立即数    以前的兄弟姐妹。

  

var id = $(this).prev('input [type =“hidden”] [name =“id”]')。val();

导致错误“未定义”。

答案 3 :(得分:0)

在您的情况下,无需使用[type="hidden"]。尝试简化选择器,如下所示: $(this).prev('input[name="id"]').val();