2011-06-18 44 views
1

我有一個頁面如下;縮短javascript函數事件

<head> 
<script type="text/javascript" src="jquery-1.6.1.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var i = 1; 
$('#prev').click(function() { 
    $.ajax({ 
    type: 'POST', 
    url: 'ajax.php', 
    data: 'id=' + i, 
    dataType: 'json', 
    cache: false, 
    success: function(result) { 
    $('#content1').html(result[0]); 
    $('#content2').html(result[1]); 
    $('#content3').html(result[2]); 
    $('#content4').html(result[3]); 
    $('#content5').html(result[4]); 
    $('#content6').html(result[5]); 
    }, 
    }); 
    i++; 
}); 
}); 
</script> 
</head> 
<body> 
<table> 
<tr> 
<td id="prev">prev</td> 
<td id="content1">X</td> 
<td id="content2">X</td> 
<td id="content3">X</td> 
<td id="content4">X</td> 
<td id="content5">X</td> 
<td id="content6">X</td> 
<td id="next">next</td> 
</tr> 
</table> 
</body> 

該代碼運行良好。但是,是否有任何解決方案可以一步完成此操作?我的意思是,如果我可以提供內容1-6的普通類content而不是特定的ID。如果內容單元沒有特定的ID(從content1content6,並且有一個共同的類content),我該怎麼做?

在此先感謝..你的情況

回答

3

看看的。每個()迭代

$('.content').each(function(index){ 
    $(this).html(result[index]); 
}); 
+0

作品好人......':)' –

3

可能使用本:

success: function(result) { 
    for(var i=0; i < 6; i++) 
    { 
     $('#content' + (i + 1)).html(result[i]); 
    } 
    } 

但是,如果#content的div不具有標識的使用,你必須設置每一個反過來。

你也可以使用jQuery的each迭代器,如果你能得到所有的content的div在一個電話:

$('div .content').each(function(ind) 
{ 
    $(this).html(result[ind]); 
}); 
+0

內容豐富...謝謝... :) –

0

假設你沒有其他東西進來result你也可以這樣做:

success: function(result) { 
    $.each(result,function(i,e){ 
     $('#content' + (i + 1)).html(e); 
    }); 
    }