【问题标题】:Creating a div by pressing a button [duplicate]通过按下按钮创建 div [重复]
【发布时间】:2020-05-31 05:48:21
【问题描述】:

我试图通过单击按钮来创建 Div,但它只是用红色填充按钮范围。

<div class="app">
  <button onclick="createDiv()">Make a cube</button>
</div>
<script>

  function createDiv ()
  {
  var boxEle = document.querySelector('.app');
  boxEle.style.width = 100;
  boxEle.style.height = 100;
  boxEle.style.backgroundColor = '#f00';

  }
</script>

【问题讨论】:

标签: javascript html css


【解决方案1】:

你不会偏离太多。您正在选择已在 html 中创建的 div,并且您的某些 js 语法已关闭。
试试this jsFiddle

function createDiv ()
  {
  var boxEle = document.createElement('div');
  var container = document.querySelector('.app');
  boxEle.style.width = '100px';
  boxEle.style.height = '100px';
  boxEle.style.backgroundColor = '#f00';
  container.appendChild(boxEle);
  }

【讨论】:

  • 非常感谢,伙计。刚开始自学编程,不知道用什么,什么时候用。
【解决方案2】:

首先,在您的函数中,您在 html 中选择了一个已经创建的 div,因此您没有创建一个 div。如果你想使用 javascript 创建一个 div,你可以这样做。

function createDiv() {
let box = document.createElement('div'); // creates div
box.classlist.add('box-styling') // you can add a class and style it using that instead 
let container = document.querySelector('.container') // div has to be placed somewhere in html, so create a container and select it.
container.appendChild(box) // then append to container


}

【讨论】:

    【解决方案3】:

    应该这样做:

    <div class="app">
      <button onclick="createDiv()">Make a cube</button>
    </div>
    <script>
    
    function createDiv () {
        var boxEle = document.querySelector('.app');
        var newDiv = document.createElement('div');
        newDiv.style.width = 100;
        newDiv.style.height = 100;
        newDiv.style.margin = 5;
        newDiv.style.backgroundColor = '#f00';
        boxEle.appendChild(newDiv);
    }
    </script>
    

    【讨论】:

    • 您应该在发布之前测试您的答案。这行不通。见this jsFiddle
    • 它绝对有效,我在一个文件中本地测试了它,代码原样。否则原发帖人怎么会知道他的尝试只为他的第一个 div 设置样式? -1 是不必要的。
    • 不知道你在本地工作的环境是什么,但它绝对不能在我为你链接的 jsFiddle 中的纯 js 或 jquery 环境中工作。那个小提琴就是你的代码。虽然您的想法是正确的,但您的语法是错误的。您必须定义样式的值并将其放在引号newDiv.style.width = '100px'; 中。否则无法知道您是否想要pxemvwvh 等。这就是为什么 OP 的代码只会将整个现有 div 设为红色并且不会将大小设置为 100x100,因为只有他的颜色是正确定义的。
    • 我刚刚用提供的代码创建了一个 html,然后用我的编辑,然后用 chrome 打开它,它工作了。
    • 为了理智起见,我还用你的代码创建了一个 html 页面,但它在我的 Chrome、IE、Firefox 或 Edge 中不起作用。它的行为与jsFiddle 完全相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2016-08-15
    • 1970-01-01
    • 2021-10-12
    • 2012-01-03
    • 1970-01-01
    相关资源
    最近更新 更多