一個單的利用JS切換圖片的功能
寫法1:node
<section> <h2>JS切換圖片</h2> <ul class="pictable"> <li><a href="img/1.jpg" onclick="showPic(this);return false" title="this picture is beautiful"><img class="picbox" src="img/1.jpg" alt=""></a></li> <li><a href="img/2.jpg" onclick="showPic(this);return false" title="this picture is beautiful"><img class="picbox" src="img/2.jpg" alt=""></a></li> <li><a href="img/3.jpg" onclick="showPic(this);return false" title="this picture is beautiful"><img class="picbox" src="img/3.jpg" alt=""></a></li> <li><a href="img/4.jpg" onclick="showPic(this);return false" title="this picture is beautiful"><img class="picbox" src="img/4.jpg" alt=""></a></li> </ul> <p id="pic_description">圖片描述</p> <img src="https://b-ssl.duitang.com/uploads/item/201408/04/20140804204624_xSeGA.png" id="placeholder" alt="img fult"> </section> function showPic(whichpic){ //改變圖片 var source = whichpic.getAttribute("href"); var placeholder=document.getElementById("placeholder"); placeholder.setAttribute("src",source); //改變圖片描述 function showPic_description(){ var text=whichpic.getAttribute("title"); var pic_desciption=document.getElementById("pic_desciption"); pic_desciption.childNodes[0].nodeValue=text; }; };
寫法2:ui
<section> <h2>JS切換圖片</h2> <ul class="pictable" id="img_gallert"> <li><a href="img/1.jpg" title="this picture is beautiful"><img class="picbox" src="img/1.jpg" alt=""></a></li> <li><a href="img/2.jpg" title="this picture is beautiful"><img class="picbox" src="img/2.jpg" alt=""></a></li> <li><a href="img/3.jpg" title="this picture is beautiful"><img class="picbox" src="img/3.jpg" alt=""></a></li> <li><a href="img/4.jpg" title="this picture is beautiful"><img class="picbox" src="img/4.jpg" alt=""></a></li> </ul> <p id="pic_description">圖片描述</p> <img src="https://b-ssl.duitang.com/uploads/item/201408/04/20140804204624_xSeGA.png" id="placeholder" alt="img fult"> </section> window.onload=prepareGallery; function prepareGallery(){ //找到圖片集 var gallery=document.getElementById("img_gallert"); // 圖片集的a元素節點 var link=gallery.getElementsByTagName("a"); // 遍歷節點 for(var i=0;i<link.length;i++){ link[i].onclick=function(){ showPic(this); return false; } } }; function showPic(whichpic){ //改變圖片 var source = whichpic.getAttribute("href"); var placeholder=document.getElementById("placeholder"); placeholder.setAttribute("src",source); };
雖然功能都同樣,可是寫法2卻更好JS不會由於HTML裏的代碼改變了,就致使沒法執行。
好的JS應該與HTML標籤是分離的。後期維護更加方便this