<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时,结果是未定义的,如何解决它
答案 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();