微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 检查数组是否为空或存在

页面第一次加载时,我需要检查image_array中是否有图像并加载最后一张图像.

否则,我禁用预览按钮,提醒用户按下新图像按钮并创建一个空数组来放置图像;

问题是else中的image_array一直在触发.如果存在一个数组 – 它只是覆盖它,但警报不起作用.

if(image_array.length > 0)
    $('#images').append('<img src="'+image_array[image_array.length-1]+'" class="images" id="1" />');
else{
    $('#prev_image').attr('disabled', 'true');
    $('#next_image').attr('disabled', 'true');
    alert('Please get new image');
    var image_array = [];
}

UPDATE
在加载html之前,我有这样的事情:

<?PHP if(count($images) != 0): ?>
<script type="text/javascript">
    <?PHP echo "image_array = ".json_encode($images);?>
</script>
<?PHP endif; ?>

解决方法:

if (typeof image_array !== 'undefined' && image_array.length > 0) {
    // the array is defined and has at least one element
}

由于隐式全局变量和变量提升的混合,您的问题可能正在发生.确保在声明变量时使用var:

<?PHP echo "var image_array = ".json_encode($images);?>
// add var  ^^^ here

然后确保您以后从未意外地重新声明该变量:

else {
    ...
    image_array = []; // no var here
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐