2014-10-09 64 views
0

我正在學習JS,並認爲我對它有了一個很好的把握,直到我終於到達了試圖完成這一步的行末。我已經瀏覽了js的參考資料並嘗試調試自己,但是我看不到我要出錯的地方。Javascript DOM選擇器

我基本上希望在向左或向右按​​下時顯示鏈接的href,我不需要任何人握住我的手,但對我出錯的地方有一點友好暗示會真的有所幫助。

非常感謝。

的HTML:

<nav class="portfolio-navigation clearfix col-sm-2"> 
    <div class="portfolio-prev"> 
     <a href="#" data-toggle="tooltip" class="tooltip-shortcode mt-tooltip" data-placement="top" title="#"> 
     <i class="fa fa-chevron-left"></i> 
     </a> 
    </div> 
    <div class="portfolio-next"> 
     <a href="#" data-toggle="tooltip" class="tooltip-shortcode mt-tooltip" data-placement="top" title="#"> 
     <i class="fa fa-chevron-right"></i> 
     </a> 
    </div> 
</nav> 

的JS(有兩個獨立的嘗試):

document.onkeydown = function(e) { 
    e = e || event; 
    switch (e.keyCode) { 
     case 37: 
      var linkprev = getElementsByClassName('portfolio-navigation')[0].getElementsByTagName("a")[0].innerHTML; 
      alert(linkprev); 
      break; 
     case 38: alert(window.location.href); break; 
     case 39: 
      var linknext = getElementsByClassName('portfolio-next')[0].getElementsByTagName("a")[0].getAttribute("href"); 
      alert(linknext); 
      break; 
     case 40: alert('down the drain'); break;   
    } 
}; 
+1

什麼*是*它,你覺得是「走錯了」;什麼是你想要幫助的錯誤? – 2014-10-09 17:12:38

+0

當向左或向右箭頭鍵被按下時,它不會提示innerHTML或href,它會在向下箭頭時提醒一個字符串,但是當我使用dom選擇器時沒有任何提示。 – 0x00 2014-10-09 17:16:56

+0

你不需要'document.getElementsByClassName'嗎?這應該顯示爲控制檯錯誤,是嗎? – 2014-10-09 17:18:23

回答

0

你需要

document.getElementsByClassName 

你失蹤的document.一部分。 如果您正在觀看,則會顯示爲控制檯錯誤。

但更容易只是做

document.querySelector('.portfolio-navigation a') 
+0

謝謝你的回覆,所以理論上這應該工作,因爲對我來說它不會:'document.getElementsByClassName('portfolio-navigation')[0] .getElementsByTagName(「a」)[0] .href;' – 0x00 2014-10-09 19:24:32