我花了一个小时试图解决这个问题,我似乎无法做到这一点。我刚刚开始学习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?
答案 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();
注意:ID应该是唯一的,不要使用重复的ID