我有一个加载更多按钮,点击调用如下所示:
$(document).ready(function(){
var pageIndex = 1;
$('#loadmorebuilds-div').click(function() {
$('#buildcontainer').imagesLoaded( function(){
$.ajax({
url: 'includes/loadmorebuilds.php?type=trending&pageIndex=' + pageIndex,
success: function(html) {
var el = jQuery(html);
jQuery("#buildcontainer").append(el).masonry( 'reload' );
$("#loadmorebuilds-div").stop().fadeOut();
pageIndex++;
$("#buildcontainer").masonry()
rowCount = el.find('#countvar').length;
if (rowCount <= 7) {
$("#loadmorebuilds-div").remove();
}
}
});
});
});
});
loadmore.php从数据库中选择限制为8的行。我对结果进行行计数以检查发送回的数量并回显这些(用于测试),我可以正确地看到它,例如8,8,然后5,当只有5个结果等。
同样,数据库结果也会反映出我想要它们呈现的方式,我也输出一个带有行数的div。例如
<div id='countvar'><?php echo $ammountofresults ?></div>
正如您所看到的,如果div'countvar'的值为7或更小,我想尝试从DOM中删除loadmore按钮。
rowCount = el.find('#countvar').length;
if (rowCount <= 7) {
$("#loadmorebuilds-div").remove();
}
但无论多少结果,div总是被移除。我可以设置rowCount&gt; = 1,即使countvar div包含'8',它仍然会删除loadmore按钮。
对此有何帮助?
答案 0 :(得分:1)
在JS中,.length()返回对象中的字符数。例如:
<div>1111</div> - Will return always 4.
而不是
rowCount = el.find('#countvar').length;
if (rowCount <= 7) {
$("#loadmorebuilds-div").remove();
}
试
rowCount = $("#countvar").html(); /* Will return the code inside that object, or the num rows*/
if (rowCount <= 7) {
$("#loadmorebuilds-div").remove();
}