2017-10-13 56 views
0

在我的javascript程序中,我創建了對象和5個實例。我已經創建了數組。之後,我通過日期對象和數組長度獲取當前分鐘數。現在我想要做以下事情: 1)。通過使用數組長度獲取分鐘模數來確定檢索對象的索引。 2)。顯示到該URL的鏈接。 3)。將計時器設置爲每分鐘運行一次,這意味着我們應該能夠每分鐘查看一次不同的鏈接。Javascript:通過獲取與數組長度的分鐘模數來檢索對象的數組索引

確定索引I計算數組長度和分鐘模數。所以我仍然很困惑,通過獲取數組長度的模數來獲取對象。

我也設置了每隔一分鐘應該換鏈接的時間間隔。但它似乎並不奏效。誰能幫我 ?

代碼:

<!DOCTYPE html> 
<html> 
<head> 
    <style> 

    div p { 
     text-align: center; 
     font-family: monospace; 
     font-size: 30px; 
    } 

    a{ 
     text-align: center; 
     text-decoration: none; 
     color: #3bb570; 

    } 

    a:hover{ 
     color:#efa5db 
    } 

</style> 
<title>lab15</title> 

</head> 
<body background="lab15_images/pink.jpg"> 
    <div class="myDiv" id="div"> 
     <p> Click on the link to see a website. </p> 
     <!-- <p><b><a href="#" id="link"> </a></b></p> --> 
     <p id="link"> </p> 
    </div> 

    <script> 
     function web(url, name) { 
      this.url = url; 
      this.name = name; 
     } 

     var myWeb = new site("http://www.cnn.com/", "CNN"); 
     var myWeb2 = new site("http://www.bbc.com/news", "BBC"); 

     var array = new Array(myWeb, myWeb2); 


     setInterval(changeLink, 60000); 

     function changeLink() { 

      var n = new Date().getMinutes(); 
      var site = instances[index] 
      var counter = 0; 

      var ele = document.getElementbyId("link"); 
      ele.innerHTML = instances[counter]; 
      counter++; 

      if(counter >= instances.length) { 
       counter = 0; 
      } 

      var a = document.createElement('a'); 
      var myDiv = document.getElementbyId("div"); 
      a.href = site.the_url; 
      myDiv.appendChild(a); 
      document.body.appendChild(myDiv); 

     } 

    </script> 
</body> 
</html> 
+0

爲了讓事情出現,您需要使用 替換document.getElementbyID(「div」)var myDiv = document.getElementById(「div」); 並將內部文本添加到您的錨標記。 示例 - :a.innerText =「myWebsite.website_name」 – user3755154

回答

2

若干mm % n的模量不會比n - 1大。所以你有0 - 60分鐘,你想要將其轉換爲數組索引0 - 4,你只需要minutes % array.length。換句話說,以獲得給定的一分鐘,你只需要一個特定的網站:

var n = new Date().getMinutes(); 
var index = n % instances.length 
var site = instances[index] 

你其實並不需要var mod = n % 60;因爲d.getMinutes() 0和59之間總是會返回一個數字了。

我願意把這些計算你的changeLink()函數中:

function changeLink() { 
    var n = new Date().getMinutes(); 
    var index = n % instances.length 
    var site = instances[index] 

    var a = document.createElement('a'); 
    var myDiv = document.getElementById("div"); 
    myDiv.appendChild(a); 
    a.title = site.website_name; 
    a.href = site.the_url; 
    document.body.appendChild(myDiv); 
} 

這給你留下了另一個問題:當你已經顯示所有的網站會發生什麼?你只是不斷重複並追加相同的網站?你停下來嗎?

+0

我粘貼了你的代碼,但鏈接不在div標籤下面...仍然是空白的..你可以請進一步建議嗎? – pari

+0

有兩件事:你的javascript中有一個錯誤:'getElementById'而不是'getElementbyID'。如果你想看到它們,你還需要添加一些文字到你的錨點。可能是這樣的:'a.innerHTML = site.website_name'。同樣爲了得到像你在圖片中發佈的例子,你需要做的不僅僅是添加一個鏈接。你可能會想要添加一個全新的div。 –

+0

我想把鏈接放在我創建的同一個div中。 – pari