2016-05-29 105 views
0

我已经尝试了几种方法在html段落中随机打印此打印件,但它无法正常工作。
有人可以帮我解决这个问题吗?无法正确输出Javascript到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(); 

在此先感谢。

+0

我们可以看到你的HTML吗? –

回答

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

这只是一个约定。

+0

解决了这个问题。 – Abk