从div中找到隐藏的val(在多个div中)

时间:2013-07-18 17:20:11

标签: jquery

我花了一个小时试图解决这个问题,我似乎无法做到这一点。我刚刚开始学习jQuery,但我觉得我已经接近解决这个问题了。

我有两个div。

HTML

<div class="fl person"> 
     <input type="hidden" name="userSaved" id="userSaved" value="1" /> 
     <img src="..." class="circle-mask" /> 
</div>

<div class="fl person"> 
     <input type="hidden" name="userSaved" id="userSaved" value="2" /> 
     <img src="..." class="circle-mask" /> 
</div>

我希望能够获得隐藏的值(除了所有这些之外还有一个表单,我只是没有包含它,因为它只占用更多空间)从中点击了div / image。单击图像时,它会隐藏该div。我的jQuery价值相当不错。我已经拥有它所以它获得了值,但只有第一个div,我似乎无法得到它,以便它显示隐藏输入的值,从中点击div。

的jQuery

<script>
$("div.person img").click(function () {    
    $(this).hide(500, function () {
        var $hidden = $('input#userSaved');
        alert($hidden.val());
        $(this).parent("div").empty();
        $(".main_page").appendTo("div.main_page").addClass("fl person"); 
    });
});
</script>

另外,如何在函数外部访问$ hidden?

2 个答案:

答案 0 :(得分:2)

使用siblings()功能:

var $hidden = $(this).siblings('input');

prev()也有效:

var $hidden = $(this).prev();

旁注:您的代码有多个具有相同ID的元素,这些元素无效。你应该改变它。

编辑以简化更改的部分。

答案 1 :(得分:0)

你也可以用它来遍历它:

 var $hidden = $(this).parent('div').find('input:hidden');

OR

var $hidden = $(this).prev();

Demo

注意:ID应该是唯一的,不要使用重复的ID