javascript - 简单的背景更改不起作用

标签 javascript html css

我想了解为什么这两个功能无法正常工作。我只想要它,以便单击按钮 1 将背景样式更改为蓝色,然后单击按钮 2 更改类名称。但我想按照 fiddle 中演示的方式来做。

有人可以解释为什么这些不起作用吗?我今天在我的新工作中,想了解为什么它不起作用,因为我相信这是一个可能存在语法错误的简单修复。感谢任何解释

var el = document.getElementByClassName('test');

function taskOne() {
  alert('task 1 executed successfully');
  el.style.background="blue !important";
}

function taskTwo() {
  alert('task 2 executed successfully');
  el.className += " test-2";
}
.test {
  background: lightgreen;
}

.test-2 {
  background: orange !important;
}
<div class="test">content</div>
<div class="test">content 2</div>
<div class="test">content 3</div>
<div class="test">content 4</div>
<div class="test">conten4t 5</div>

<button onClick="taskOne()">Task 1</button>

<button onClick="taskTwo()">Task 2</button>

最佳答案

首先,是getElementsByClassName 不是getElementByClassName。它返回具有该类名称的元素数组。

var elements = document.getElementsByClassName('test');

function taskOne() {
  for(let i = 0; i < elements.length; i++) {
    let el = elements[i];
    el.style.backgroundColor = "blue";
  }
}

function taskTwo() {
  for(let i = 0; i < elements.length; i++) {
    let el = elements[i];
    el.className += " test-2";
  }
}
.test {
  background: lightgreen;
}

.test-2 {
  background: orange !important;
}
<div class="test">content</div>
<div class="test">content 2</div>
<div class="test">content 3</div>
<div class="test">content 4</div>
<div class="test">content 5</div>

<button onClick="taskOne()">Task 1</button>

<button onClick="taskTwo()">Task 2</button>

关于javascript - 简单的背景更改不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47479119/

相关文章:

asp.net - 将 jQuery 引用放置在 HTML 文档的底部会破坏用户控制

css - codeigniter CSS 样式

javascript - 我可以使用 javascript/jQuery 更改媒体查询吗?

javascript - json 和 javascript 新手,有帮助吗?

javascript - 为什么我的 javascript promise 没有解决?

javascript - 获取 div html 中的复选框值

html - Phone Gap 中输入字段表单的问题

javascript - 使用 graph api 时如何获取 Facebook 响应提要的下一部分?

css - 在 CSS 中设置自定义指针

javascript - 如何使 <span> 元素成为表单中的常规制表位?