我有兩個簡單的函數,當被調用時,將一個條目移回,或者向前移動數組中的一個條目。但是,當你到達最後並顯示所有條目時,還有一個額外的「未定義」條目。對於如何解決這個問題,有任何的建議嗎?防止未定義的數組條目
<?php
$slide_img_array = array();
$slide_desc_array = array();
$slide_name_array = array();
while (!$sql_pres_select->eof()) {
array_push($slide_img_array, $sql_pres_select->valueof('file_location'));
array_push($slide_desc_array, $sql_pres_select->valueof('description'));
array_push($slide_name_array, $sql_pres_select->valueof('slide_name'));
$sql_pres_select->next();
}
?>
<script>
var slide_no = 0;
var slides = <?php echo json_encode($slide_img_array); ?>;
var desc = <?php echo json_encode($slide_desc_array); ?>;
var names = <?php echo json_encode($slide_name_array); ?>;
function nextSlide() {
if (slide_no < slides.length) {
slide_no++;
document.getElementById("display").src = slides[slide_no];
document.getElementById("func_slide_desc").innerHTML = desc[slide_no];
document.getElementById("func_slide_name").innerHTML = names[slide_no];
}
}
function prevSlide() {
if (slide_no > 0) {
slide_no--;
document.getElementById("display").src = slides[slide_no];
document.getElementById("func_slide_desc").innerHTML = desc[slide_no];
document.getElementById("func_slide_name").innerHTML = names[slide_no];
}
}
function goToSlide(id) {
slide_no = id;
document.getElementById("display").src = slides[slide_no];
document.getElementById("func_slide_desc").innerHTML = desc[slide_no];
document.getElementById("func_slide_name").innerHTML = names[slide_no];
document.getElementById('slide_index').innerHTML = slide_no;
}
</script>
我想我需要寫檢查,如果數組的結尾是否已經reached.But我不確知我應該怎麼做這一行。我曾嘗試執行以下操作:
function nextSlide() {
if (slide_no < slides.length) {
slide_no++;
document.getElementById("display").src = slides[slide_no];
document.getElementById("func_slide_desc").innerHTML = desc[slide_no];
document.getElementById("func_slide_name").innerHTML = names[slide_no];
}
else if (slide_no===slides.length){
break;
}
但是,當我嘗試它只是停在第一個條目和nextSlide功能將不再工作
嘗試刪除'else if'語句並將其全部放入其中。 –
同時將'slide_no
如果我刪除'else if'語句幻燈片可以正確來回移動,但問題是,在幻燈片結束時,我得到一個未定義的條目,我不想 –