當您單擊按鈕時,需要從數組內部的對象中獲取一個隨機字符串。但由於某種原因,我的代碼沒有執行。通過單擊按鈕從數組內的對象獲取隨機值
var quotes = [{
quote: "Quote1",
source: "Source1"
},
{
quote: "Quote2",
source: "Source2"
},
{
quote: "Quote3",
source: "Source3"
},
{
quote: "Quote4",
source: "Source4"
},
{
quote: "Quote5",
source: "Source5"
}
];
function getRandomquote() {
var randomindex = Math.floor(Math.random() * (quotes.length));
var quotesarr = quotes[randomindex];
var objquote = quotesarr.quote;
var objsource = quotesarr.source;
document.getElementById("quote").innerHTML = objquote;
document.getElementById("source").innerHTML = objsource;
}
function printQuote() {
document.getElementById("loadQuote").onclick = getRandomquote;
}
printQuote();
<div class="container">
<div id="quote-box">
<p class="quote"> hello</p>
<p class="source"> hello</p>
</div>
<button id="loadQuote" onclick="printQuote();">Show another quote</button>
我收到此錯誤信息:答案後
Uncaught TypeError: Cannot set property 'innerHTML' of null at HTMLButtonElement.getRandomquote (randomtest1.js:27)
更新下面
我改變getElementById
到getElementsByClassName
,現在有沒有錯誤信息。
但是,當我點擊按鈕,它不會更改元素。我相信我在printQuote
函數上犯了一個錯誤。我想不明白。
所有你要做的就是重新分配它不會做任何事情了'onclick'事件。只需調用'getRandomquote()'而不是'document.getElementById(「loadQuote」)。onclick = getRandomquote;'。此外,將這個答案作爲對您問題的進一步修改會更好。 :) – G0dsquad
重新分配後,該按鈕仍然無法正常工作。 – alex472
嘗試https://jsfiddle.net/ffnsvopr/ – G0dsquad