0

我花了过去一个小时试图弄清楚这一点,但我似乎无法做到正确。我才刚刚开始学习 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 ?

4

2 回答 2

2

使用siblings()功能:

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

prev()也可以:

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

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

编辑以简化更改的部分。

于 2013-07-18T17:23:22.927 回答
0

你也可以用这个遍历它:

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

或者

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

演示

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

于 2013-07-18T17:25:18.793 回答