为什么我没有改变按钮颜色的背景?

时间:2016-08-18 05:04:59

标签: javascript css

单击按钮本身时,我尝试更改正文和按钮的颜色。

现在,页面正文随机改变颜色。但是这不适用于按钮本身。

有什么想法吗?

这是按钮的CSS:

#loadQuote {
  position: fixed;
  width: 12em;
  display: inline-block;
  left: 50%;
  margin-left: -6em;
  bottom: 150px;
  border-radius: 4px;
  border: 2px solid #fff;
  color: #fff;
  background-color: #36b55c;
  padding: 15px 0;
  transition: .5s ;
}
#loadQuote:hover {
  background-color: rgba(255,255,255,.25);
}
#loadQuote:focus {
  outline: none;
}

这是我的JavaScript:

// prints quote
function printQuote(){

    var finalQuote = buildQuote();
    document.getElementById('quote-box').innerHTML = finalQuote;

    var color = '#'+Math.floor(Math.random()*16777215).toString(16);
    document.body.style.background = color;
    document.loadQuote.style.backgroundColor = color;
}

谢谢

2 个答案:

答案 0 :(得分:3)

您的元素选择器不正确。使用document.getElementById选择元素。

// prints quote
function printQuote(){

    var finalQuote = buildQuote();
    document.getElementById('quote-box').innerHTML = finalQuote;

    var color = '#'+Math.floor(Math.random()*16777215).toString(16);
    document.body.style.background = color;
    //BELOW LINE IS THE CHANGED CODE
    document.getElementById('loadQuote').style.backgroundColor = color;
}

答案 1 :(得分:1)

你在这一行有一个问题:

document.loadQuote.style.backgroundColor = color;;

基本上loadQuote不是document中的对象。

相反,您需要使用document.getElementById()选择DOM元素,如:

document.getElementById('loadQuote'); // if you have a DOM element with ID loadQuote

或使用Document.querySelector()传递CSS选择器,只是一个例子:

document.querySelector('.loadQuote'); // if you DOM element has .loadQuote appplied

有关document.querySelector()的更多信息,请访问:

https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector