0

現在、ページに 2 つの div があります。ユーザーが最初の div を選択すると、その div の値から非表示の値を取得しますが、2 番目の div からも値userSavedを取得したいと思います。userSaved最初の値が選択され、saved_id_user_voted_on_val に保存されたことを知っておく必要があります。次に、2 番目の値を別の場所に保存できます。最初の (選択された) 値は、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();
    });
});

どんな助けでも大歓迎です。ありがとうございました。

4

2 に答える 2

1

選択した値から、前方または後方にジャンプするかどうかを判断できると考えてください。値が整数でない場合は、名前を使用して入力を区別することもできます。あなたのサンプルコードにどういうわけか無意味に見えるにもかかわらず、ここに行きます:

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();

または、配列を取り、1 に達するまで prev() をループし、NUM_OF_INPUTS に達するまで next() をループします。名前を取得して入力を区別し、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()
}
于 2013-07-20T20:11:13.560 に答える
0

このソリューション(Sushanthの少し変更)を使用して動作させました。

var currentDiv = $(this).parent('div');
var saved_id_user_voted_on_val_two = currentDiv.find('input:hidden');
var otherDiv = $('.fl').not(currentDiv);
于 2013-07-20T21:37:56.613 に答える