2015-11-06 19 views
0

我有我的JS腳本下面的問題。我創建了一個照片庫,每個照片下面都有一個標題。我用數組來創建標題。但是,在第一頁上,標題是1;在第二頁上,標題是(逗號);第三,標題是2;在第四頁上,標題是(逗號)等。我希望標題是1,2,3,4,5,6。我弄糊塗爲什麼逗號可以是標題。有沒有解決辦法?照片庫上的數組無法正常工作

var num; 
 
var name = ["", "1", "2", "3", "4", "5", "6"]; 
 

 
function change(n) { 
 
    num = n; 
 
    var path = "img/" + n + '.png'; 
 
    document.getElementById('text').innerHTML = name[n]; 
 
    document.getElementsByTagName("img")[0].src = path; 
 
    return false; 
 
} 
 

 
function next() { 
 
    if (num >= 6) { 
 
    num = 1; 
 
    } else { 
 
    num = num + 1; 
 
    } 
 

 
    change(num); 
 
} 
 

 
function prev() { 
 
    if (num <= 1) { 
 
    num = 6; 
 
    } else { 
 
    num = num - 1; 
 
    } 
 

 
    change(num); 
 
}
<body onload="change(1)"> 
 
    <a href="#" onclick="prev()">Prev</a> 
 
    <a href="#" onclick="change(1)">1</a> 
 
    <a href="#" onclick="change(2)">2</a> 
 
    <a href="#" onclick="change(3)">3</a> 
 
    <a href="#" onclick="change(4)">4</a> 
 
    <a href="#" onclick="change(5)">5</a> 
 
    <a href="#" onclick="change(6)">6</a> 
 
    <a href="#" onclick="next()">Next</a> 
 

 
    <br> 
 
    <br> 
 
    <img src="" alt="" style="width:600px; height:320px"> 
 
    <br> 
 
    <p id="text"></p> 
 

 
</body>

回答

1

既然你在它覆蓋window.name屬性,它是字符串全球範圍內定義name,結果你的數組轉換成字符串,1,2,3,4,5,6,而不是陣列。使用不同的變量名稱,如names來避免這種情況。另外,最好是使用事件處理程序和您的HTML與JavaScript分離,你將能夠使用不會污染全局變量的window對象的命名空間。

https://developer.mozilla.org/en-US/docs/Web/API/Window/name

+0

非常感謝! – billyhalim25

+0

那麼爲什麼類型不會改變像(函數(){ window.test = '好測試'; 變種測試= [1,2,3]; 警報(測試[2]); })(); –

0

你需要打電話給你name陣列別的東西。 name指的是windows.name,如果您爲該變量賦值,則將其視爲字符串。

var num; 
 
var namedata = ["", "1", "2", "3", "4", "5", "6"]; 
 

 

 
function change(n) { 
 
    num = n; 
 
    var path = "img/" + n + '.png'; 
 
    document.getElementById('text').innerHTML = namedata[n]; 
 
    //document.getElementById('text').innerHTML = name 
 
    document.getElementsByTagName("img")[0].src = path; 
 
    return false; 
 
} 
 

 
function next() { 
 
    if (num >= 6) { 
 
    num = 1; 
 
    } else { 
 
    num = num + 1; 
 
    } 
 

 
    change(num); 
 
} 
 

 
function prev() { 
 
    if (num <= 1) { 
 
    num = 6; 
 
    } else { 
 
    num = num - 1; 
 
    } 
 

 
    change(num); 
 
}
<body onload="change(1)"> 
 
    <a href="#" onclick="prev()">Prev</a> 
 
    <a href="#" onclick="change(1)">1</a> 
 
    <a href="#" onclick="change(2)">2</a> 
 
    <a href="#" onclick="change(3)">3</a> 
 
    <a href="#" onclick="change(4)">4</a> 
 
    <a href="#" onclick="change(5)">5</a> 
 
    <a href="#" onclick="change(6)">6</a> 
 
    <a href="#" onclick="next()">Next</a> 
 

 
    <br> 
 
    <br> 
 
    <img src="" alt="" style="width:600px; height:320px"> 
 
    <br> 
 
    <p id="text"></p> 
 

 
</body>

+0

我也發現了這一點,但我仍然不知道爲什麼我們不能用'name'變量名? – Marek

+0

非常感謝! – billyhalim25