【问题标题】:trying to make multiply divs in html dom with a forloop尝试使用 for 循环在 html dom 中创建多个 div
【发布时间】:2018-05-24 22:54:04
【问题描述】:

您好,我正在尝试在 forloop 中创建多个 div,但结果只有 1 个 div。我做错了什么?

代码:

for (var i = 0; i < $hubbe.colors.length; i++) {
$hubbe.pallet = document.createElement('DIV');
$hubbe.pallet.setAttribute('class', 'pallet');
$hubbe.toolbarLeft.appendChild($hubbe.pallet);
$hubbe.pallet.style.backgroundColor = $hubbe.colors[i];
Object.assign($hubbe.pallet.style, {
width: '40px',
height: '40px',
border: '2px solid #2c3e50',
margin: '20px 0 0 5px',
disaply: 'block',
cursor: 'pointer',
});
}

【问题讨论】:

  • 您只是覆盖了$hubbe.pallet 变量,基本上丢弃了之前存储在那里的div。你想用 div 做什么?也许将它们存储在列表中?或者将它们添加到页面中?
  • hm 如果你看这篇帖子stackoverflow.com/questions/50517695/… 我正在尝试为我的画布项目制作一个调色板,但由于某些原因我无法让它工作。这个问题是我上一篇文章的后续问题。
  • 啊,我想我可能已经解决了这个问题。从您的另一个问题中,我了解到您尝试使用 $hubbe.pallet 作为数组。不过,您在$hubbe.pallet = document.createElement('DIV'); 中所做的作业并非如此。您想将其用作数组吗? (列表)
  • @NocNit 是的,我认为这就是我想要的:)

标签: javascript html for-loop dom


【解决方案1】:

根据您告诉我的情况,我认为这将解决您的问题。它将$hubbe.pallet 更改为一个数组,因此您的其余代码也可以正常工作:

$hubbe.pallet = []; //declares the array

for (var i = 0; i < $hubbe.colors.length; i++) {
    var temp = document.createElement('DIV'); //create temp variable to work with

    temp.setAttribute('class', 'pallet');
    temp.style.backgroundColor = $hubbe.colors[i];

    Object.assign(temp.style, {
        width: '40px',
        height: '40px',
        border: '2px solid #2c3e50',
        margin: '20px 0 0 5px',
        disaply: 'block',
        cursor: 'pointer',
    });

    $hubbe.toolbarLeft.appendChild(temp);

    $hubbe.pallet[i] = temp; //adds the object to the array
}

【讨论】:

  • 谢谢,这有点像我要找的东西,但现在我收到一个错误,说 Uncaught TypeError: Cannot read property 'backgroundColor' of undefined
  • 这可能是因为您的其余代码。我注意到在您提供的另一个问题中,您还在函数chosenColor 中使用了$hubbe.pallet.style.backgroundColor。您还必须更改它以使用数组
  • 哦,好吧,是的,我看到它在第 362 行。我不是 100% 确定如何做到这一点,尽管我对 js 有点陌生
  • 实际上,我认为如果您在chosenColor 函数中将$hubbe.pallet 替换为$hubbe.color,它可能会起作用
  • 告诉我这是怎么回事。另外,如果解决了问题并且答案对您有所帮助,请将其标记为已接受。也帮了我很多忙:)
猜你喜欢
  • 2020-06-24
  • 2016-11-11
  • 2021-12-01
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多