javascript - JavaScript 操作 DOM(onclick 事件)
问题描述
我有这段代码应该在每次单击按钮时添加一个红色方块的 div。碰巧它添加了我想要的 div 1 单击是和 1 单击否。这是代码:
var btnElement = document.querySelector('button');
console.log(btnElement);
btnElement.onclick = function() {
var index = 0;
var squareElementCreator = document.createElement('div');
squareElementCreator.setAttribute('class', 'box');
var containElement = document.querySelector('#app');
containElement.appendChild(squareElementCreator);
var squareElement = document.querySelectorAll('.box');
console.log(squareElement[index]);
squareElement[index].style.width = "100px";
squareElement[index].style.height = "100px";
squareElement[index].style.backgroundColor = '#f00';
squareElement[index].style.margin = '10px';
//console.log(squareElement);
var container = document.querySelector('#app');
container.appendChild(squareElement[index]);
index++;
}
<div id="app">
<input type="text" name="nome" id="nome" />
<button class="botao">Adicionar</button>
</div>
解决方案
似乎您正在尝试创建一个 for 循环而不是您的函数?还有一些逻辑问题。这里有一些提示可以帮助你理解下面的代码:
- 在函数中声明的每个变量,只会在调用该函数时声明。调用函数后,变量将被销毁,并且在大多数情况下您无法再次访问它们。
- 您似乎试图在同一个函数中选择 dom 上的所有元素?如果您只是在附加到 dom 之前修改样式属性,则不需要这样做。
- 花一些时间对基础知识做一些研究,它真的会帮助你把一些高质量的代码放在一起。
var btnElement = document.querySelector('button');
var containElement = document.querySelector('#app');
btnElement.addEventListener('click', function () {
var squareElement = document.createElement('div')
squareElement.className = 'box'
squareElement.style.width = "100px";
squareElement.style.height = "100px";
squareElement.style.backgroundColor = '#f00';
squareElement.style.margin = '10px';
containElement.appendChild(squareElement)
})
推荐阅读
- ios - 如何使用 UITableView 创建类似 Apple Music 专辑详情页的 UI?
- ios - 收缩高度约束动画问题
- r - 无法让下载处理程序正确覆盖同名文件
- javascript - intelliJ 中的 d3.js 和 typescript:导入问题
- jenkins - Jenkins 多分支流水线轻量级结账
- vis.js - Vis.js hoverNode 未触发
- javascript - 如何将交互式树变成触摸友好的界面?
- meteor - Meteor 服务器验证方法不会在客户端显示验证错误
- java - 程序在尝试执行 if 语句时冻结
- c# - 无法应用属性类“JsonConverter”,因为它是抽象的