javascript - 未捕获的类型错误:无法设置未定义的属性“背景”。将样式放在课堂上
问题描述
我试图放置一些背景样式,结果是上帝,但它向我显示了那个错误,但我不知道如何使用 for 语句放置样式。不用一一做。
我遇到的另一个问题是,如果我记录我的 amarillos。它说的是类undefined
,那是false
因为在 HTML 中,我定义了西班牙语中黄色的 amarillos。
所有代码都完美运行,只是我尝试使用我遭受的 var amarillos 工作。谢谢
代码:
<!DOCTYPE html>
<html lang="es" dir="ltr">
<head>
<meta charset="utf-8">
<title>Java Script Avanzado</title>
</head>
<body>
<h1>Sesión de Java Script Avanzado</h1>
<p>Nuestro primer Script en JS Avanzado</p>
<section id="miSeccion">
<h1>Listado de texto de los divs</h1>
<hr>
</section>
<div class="miCaja" id="miCaja">
Hola soy una caja
</div>
<div class="rojo">
Soy el primer div!
</div>
<div class="amarillo">
Soy el segundo div
</div>
<div class="amarillo">
Soy el tercer div
</div>
<script type="text/javascript" src="dom.js">
</script>
</body>
</html>
'use strict'
//DOM - Document Object Model
function cambiaColor(color) {
caja.style.background = color;
}
//Conseguir elementos con un ID concreto
//var caja = document.getElementById('miCaja');
var caja = document.querySelector("#miCaja")
caja.innerHTML = "Texto en la caja desde html";
caja.style.background = "red";
caja.style.padding = "20px";
caja.style.color = "white";
caja.className = "hola";
console.log(caja);
// Conseguir elementos por sus etiqueta
var todosLosDivs = document.getElementsByTagName("div");
var div2 = todosLosDivs[2];
div2.innerHTML = "ya no me gusto lo escrito anterior";
div2.style.background = "yellow";
//todosLosDivs.forEach((valor indice)=>{
var seccion = document.querySelector("#miSeccion")
var hr = document.createElement('hr');
var valor;
for(valor in todosLosDivs){
if (typeof todosLosDivs[valor].textContent == 'string' ) {
console.log(todosLosDivs[valor]);
var parrafo = document.createElement("p");
var texto = document.createTextNode(todosLosDivs[valor].textContent);
parrafo.append(texto);
seccion.append(parrafo);
}
}
seccion.append(hr);
//Conseguir elementos por su clase css
var amarillos = document.getElementsByClassName("amarillo");
console.log(amarillos);
console.log(amarillos.className);
var color;
for(color in amarillos){
amarillos[color].style.background = "yellow";
}
解决方案
那个怎么样?它实际上返回一个 HTMLCollection,它在每个索引处都有您的元素,因此您必须指定要操作的集合索引。
我希望我能帮助 O:-)
伟大的循环应该是那个:
//Conseguir elementos por su clase css
var amarillos = document.getElementsByClassName("amarillo");
for (let amarillo of amarillos)
{
amarillo.style.background = "yellow";
}
console.log(amarillos);
console.log(amarillos[0]);
console.log(amarillos[0].style.background);
console.log(amarillos[0].className);
推荐阅读
- angular - 无法从 JSON 文件 Angular 读取修改后的值
- string - 查找嵌套集合时,Elasticsearch 会排除空字符串
- php - 如何在 db laravel 5.4 的派生文件路径中跳过公用文件夹名称?
- javascript - json 不断推入第一个数组项
- ruby-on-rails - RSpec ActiveRecord::RecordInvalid:验证失败:尽管在 FactoryBot 中有序列,但电子邮件已被接收
- c - 我的代码块无法编译
- azure - Azuure 应用服务和 GoDaddy 域
- r - 无法在 AWS Rstudio 上分配可用内存
- css - 非中心的引导偏移列
- user-interface - GUI 中的自动热键检查变量