想实现的效果是:在#poorcon这个p里已经加载好最初的前几条数据,然后点击按钮加载接下来的几条数据,第一次点击通过jQuery("#poorcon_more").render("#poorcon_more", { rows: obj }); 这一句,已经将数据存入p#poorcon_more里面了,然后append到p#poorcon中,但是接下来的点击按钮之后,p#poorcon_more里面的内容还是保持原先的数据,没有被覆盖,导致列表显示重复数据。
(后台的sql查询语句已经确保正确)
$(function(){
jQuery.noConflict();
var currentPage = 1;
jQuery.getJSON('mobilegetInfo.aspx?Type=pklbmore¤tPage='+currentPage, function (obj) {
jQuery("#poorcon").render("#poorcon", { rows: obj });
});
jQuery(".refresh").click(function(){
currentPage++;
jQuery.getJSON('mobilegetInfo.aspx?Type=pklbmore¤tPage='+currentPage, function (obj) {
jQuery("#poorcon_more").render("#poorcon_more", { rows: obj });
jQuery("#poorcon").append(jQuery("#poorcon_more").html());
});
})
})
<p class="pp poorcon_more" id="poorcon_more" style="display:none;" >
<!--
<#for(var i=0;i<rows.length;i++){#>
<a href="poordetail.html?id=<#= rows[i].id #>" target="_blank" >
<p class="poorcon1">
<p class="poorimg"><img src="<#= rows[i].url #>" /></p>
<p class="poorinfo">
<p class="host">户主:<#= rows[i].hzxm #></p>
<p class="pos">地区:<#= rows[i].diqu #></p>
<p class="tech"><#= rows[i].zpyysl #></p>
<p><span><#= rows[i].zllb #></span></p>
</p>
</p>
</a>
<#} #>
-->
</p>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
首先,这个
jQuery(selector).render中的render方法不是 jQuery 标准的 API,你引入什么第三方插件要说清楚,不然压根不知道里边是怎么工作的。其次,所谓的后台 sql 查询正确,是指你确保后端返回给前端的数据是正确的么?
最后,我猜测,你这种使用
render的姿势是不正确的。render很可能是获取<!-- -->里边的代码后解析渲染,但是你第一次render的时候已经把代码弄成正确的 html 而不是模板了,第二次它取不到模板,自然不会渲染。当然,这些都是猜测。