当页面第一次加载时,我需要检查image_array
中是否有图像,并加载最后一个图像。
否则,我禁用预览按钮,提醒用户按下新图像按钮,并创建一个空数组来放置图像;
问题是else
中的image_array
总是会触发。如果数组存在-它只是覆盖它,但是alert不起作用。
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 = [];
}
在加载html之前更新,我有类似这样的东西:
<?php if(count($images) != 0): ?>
<script type="text/javascript">
<?php echo "image_array = ".json_encode($images);?>
</script>
<?php endif; ?>
发布于 2012-07-31 23:30:42
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
}
发布于 2016-02-23 03:27:09
(ECMA 5.1)怎么样:
if(Array.isArray(image_array) && image_array.length){
// array exists and is not empty
}
发布于 2020-03-19 15:21:16
随着可选链接提案达到阶段4并得到更广泛的支持,有一种非常优雅的方法可以做到这一点。
if(image_array?.length){
// image_array is defined and has at least one element
}
https://stackoverflow.com/questions/11743392
复制相似问题