从未通过jQuery选择的div获取值

时间:2013-07-20 19:35:42

标签: jquery

我目前在我的页面上有两个div。当用户选择说出第一个div时,我从该div获得userSaved值的隐藏值,但我也想从第二个div中获取userSaved值。我必须知道第一个值被选中并存储在:saved_id_user_voted_on_val中,然后第二个值可以存储在其他内容中。第一个(选定的)值必须存储在saved_id_user_voted_on_val中。

HTML

<div class="fl person">
    <div class="maintain_size">
        <input type="hidden" name="userSaved" value="1" />
    </div>
</div>

<div class="fl person">
    <div class="maintain_size">
        <input type="hidden" name="userSaved" value="2" />
    </div>
</div>

的jQuery

$(document.body).on('click',"div.person img",function () {
    $(this).parent("div").fadeOut(1000, function () {
        var saved_id_user_who_voted_val = "<?php echo $_SESSION['id']; ?>";
        var saved_id_user_voted_on_val = $(this).parent('div').find('input:hidden');
        var saved_id_user_voted_on_val = saved_id_user_voted_on_val.val();

        var current_div = $(this).parent("div");
        current_div.empty();
    });
});

非常感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

认为您可以从所选值中得出结论是向前还是向后跳跃。 如果该值为非整数,您还可以使用该名称来区分输入。在你的示例代码中将seeems放在某种程度上毫无意义,不过我们在这里:

var selected = $(this).find("input:hidden").val();

if(selected==2)
   var notselected = $(this).prev(".person").find("input:hidden").val();
else
   var notselected = $(this).next(".person").find("input:hidden").val();

或者取一个数组并循环prev()直到达到1而next()直到达到NUM_OF_INPUTS。 使用名称来区分输入并提取id。

var values = new Array();

var selectedInput = $(this).find("input:hidden").attr("name");

var iterDiv = $(this);

for(var j = selectedInput;j>1;j--){
  iterDiv = iterDiv.prev(".person");
  values[j] = iterDiv.find("input:hidden").val();
}
iterDiv = $(this);
for(j = selectedInput;j>NUM_OF_INPUTS;j++){
  //.... get next()
}

答案 1 :(得分:0)

我使用这个解决方案(对Sushanth的一点修改)得到了它。

var currentDiv = $(this).parent('div');
var saved_id_user_voted_on_val_two = currentDiv.find('input:hidden');
var otherDiv = $('.fl').not(currentDiv);