无法正确输出Javascript到html

时间:2016-05-29 23:38:48

标签: javascript html dom

我已经尝试了几种方法在html段落中随机进行打印但是它无法正常工作 有人可以帮我解决问题吗?

var randomPicker = Math.floor(Math.random() * 5);
var quotesArray = [];

function Quotes(quote, author) {
    this.quote = quote;
    this.author = author;  
}

quotesArray[0] = new Quotes("Great minds discuss ideas; average minds discuss events; small minds discuss people.", "Eleanor Roosevelt");
quotesArray[1] = new Quotes("To be yourself in a world that is constantly trying to make you something else is the greatest accomplishment.", "Ralph Waldo Emerson");
quotesArray[2] = new Quotes("Great things are done by a series of small things brought together.", "Vincent Van Gogh");
quotesArray[3] = new Quotes("Some are born great, some achieve greatness, and some have greatness thrust upon them.", "William Shakespeare");
quotesArray[4] = new Quotes("A tiger does not shout its tigritude, it acts.", "Wole Soyinka");
quotesArray[5] = new Quotes("Thinking start with a problem and ends in a solution.", "Dr. Edward de Bono");


var rand = quotesArray[randomPicker];

function printQuote(){
for (var q in rand){

console.log(rand[q]); //works well but

//this
// document.getElementById("msg").innerHTML = rand[q];
//not working...
    }
}
//this also not working...
document.getElementById("msg").innerHTHL = printQuote();

提前致谢。

1 个答案:

答案 0 :(得分:0)

它不起作用的原因是quotesArray的元素不是字符串而是对象本身。您需要访问这些对象中的属性才能获取字符串。

var randomPicker = Math.floor(Math.random() * 5);
var quotesArray = [];

function Quotes(quote, author) {
    this.quote = quote;
    this.author = author;  
}

quotesArray[0] = new Quotes("Great minds discuss ideas; average minds discuss events; small minds discuss people.", "Eleanor Roosevelt");
quotesArray[1] = new Quotes("To be yourself in a world that is constantly trying to make you something else is the greatest accomplishment.", "Ralph Waldo Emerson");
quotesArray[2] = new Quotes("Great things are done by a series of small things brought together.", "Vincent Van Gogh");
quotesArray[3] = new Quotes("Some are born great, some achieve greatness, and some have greatness thrust upon them.", "William Shakespeare");
quotesArray[4] = new Quotes("A tiger does not shout its tigritude, it acts.", "Wole Soyinka");
quotesArray[5] = new Quotes("Thinking start with a problem and ends in a solution.", "Dr. Edward de Bono");


var rand = quotesArray[randomPicker];

function printQuote() {
    document.getElementById("quote").innerHTML = rand.quote;
    document.getElementById("author").innerHTML = rand.author;
}

printQuote();
<p id="quote"></p>
<p id="author"></p>

编辑:在JavaScript中创建新对象时,最好使用单数名称作为对象名称,而不是复数。

function Quotes应为function Quote。同样,new Quotes应为new Quote

这只是一个惯例。