-1

私はjavascriptが初めてです。javascript でページネーションのようなタスクを実行したいです。これが私のコードです。

for(var i=1;i<=total_guest;i++)
{   
$("#Personal"+i).find("#Personal_details ").show();
$('#Personal'+i).find('.personal_info').click(function(e){
    alert(i);
        e.preventDefault();
        $("#Personal"+i).find("#Personal_details ").hide();


    }); 
}

説明:

ループでは、total_guest 値を取得しています (例 5)。開始時に最初のゲストのページを取得したい.次のボタン(class = 'personal_info')をクリックすると、5番目のゲストまで同様に次のゲストのページを表示する必要があります。

誰でも解決策を提供できますか?

HTML を含めるように編集します。

<div id='Personal1' > 
    <div id='Personal_details'> 
        <div class='personal_info'>button for next step</div> 
    </div> 
</div> 
<div id='Personal2' > 
    <div id='Personal_details'> 
        <div class='personal_info'>button for next step</div> 
    </div> 
</div>
4

2 に答える 2

2

ループを機能させるには、クリック関数内で定数の値を保持するためのクロージャーが必要ですが、次のiようにすべて不要に思えます。

$(".Personal_details").show().on('click', function(){
    $(this).hide();
}); 

ID は一意であり、.find(someID)その ID を持つ要素は 1 つしか存在できないため意味がないことに注意してください。

編集:新しい HTML に基づくと、それはエラーです! 同じ ID を 2 回 (またはそれ以上) 持つことはできません。

<div id='Personal1' > 
    <div class='Personal_details'> 
        <div class='personal_info'>button for next step</div> 
    </div> 
</div> 
<div id='Personal2' > 
    <div class='Personal_details'> 
        <div class='personal_info'>button for next step</div> 
    </div> 
</div>
于 2013-02-24T06:12:50.823 に答える
0

これを試して、IDをクラスに変更してid="Personal1" to class="personal" から

$('document').ready(function() {

    $('.personal').click(function() {
           $(this).children('.personal-details').show();
    });

    $('.personal_info').click(function() {
           $(this).parent().hide();
           $(this).parent().parent().next().children('.personal-details').show();
    });
});
于 2013-02-24T06:30:45.510 に答える