-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')时,我应该明智地显示下一位客人的页面,直到第五位客人。

任何人都可以给出解决方案吗?

编辑以包含 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

为了让你的循环工作,你需要一个闭包来保持iclick 函数内的常量值,但这一切似乎都是不必要的,你可以这样做:

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

请注意,ID 是唯一的,并且.find(someID)没有意义,因为该 ID 只能有一个元素。

编辑:基于新的 HTML,这是一个错误!您不能两次(或更多)拥有相同的 ID。

<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="Personal1" to class="personal" 试试这个,然后将 id 更改为 class

$('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 回答