使用JavaScript将新元素添加到DOM中

使用JavaScript将新元素添加到DOM中,javascript,dom,Javascript,Dom,我正在努力将新的“按钮”元素添加到我的“列表”中。我试着添加一些els,但不起作用。这对李来说是不寻常的。若你们问为什么按钮是父按钮,它是表单引导列表组 更新JS。它现在添加了“按钮,但不正确” <div class="list-group"> <button type="button" class="list-group-item"> <ul class="desc"

我正在努力将新的“按钮”元素添加到我的“列表”中。我试着添加一些els,但不起作用。这对李来说是不寻常的。若你们问为什么按钮是父按钮,它是表单引导列表组

更新JS。它现在添加了“按钮,但不正确”

     <div class="list-group">
                    <button type="button" class="list-group-item">
                        <ul class="desc">
                            <li class="t-desc50">Add Device</li>

                            <li class="t-desc55"><i class="fa fa-plus fa-2x" aria-hidden="true"></i></li>
                        </ul>
                    </button>
                    <button type="button" class="list-group-item" id="new-item>
                            <ul class="desc">
                                <li class="t-desc">Lamp</li>
                                <li class="t-desc2">5 kwH</li>
                                <li class="t-desc3"><label class="switch">
                                        <input type="checkbox">
                                        <span class="slider round"></span>
                                      </label></li>
                            </ul>
                        </button>
                    <button type="button" class="list-group-item" id="new-item>
                                <ul class="desc">
                                    <li class="t-desc">AC</li>
                                    <li class="t-desc2">5 kwH</li>
                                    <li class="t-desc3"><label class="switch">
                                            <input type="checkbox">
                                            <span class="slider round"></span>
                                          </label></li>
                                </ul>
                            </button>
                 </div>

如果要向dom添加元素,可以使用:

var-element=document.createElement(标记名);

然后附加您的元素

您可以将事件侦听器添加到
元素
,如果需要,还可以在前面添加类

评论回答

您需要的代码可能是这样的:

function addItem() { 
  var list = document.getElementById('list-group')

  //Button
  var button = document.createElement('button');
  button.classList.add("list-group-item");

  //Ul
  var ul = document.createElement('ul');
  ul.classList.add("desc");

  //li
  var liFirst = document.createElement('li');
  var liSecond = document.createElement('li');
  var liThird = document.createElement('li');
  liFirst.innerHTML = "Lamp"
  liSecond.innerHTML = "5 kwH"

  //Label
  var label = document.createElement('label');
  label.classList.add("switch");
  var input = document.createElement('input');
  input.type = 'checkbox';
  var span = document.createElement('span');
  span.classList.add("slider");
  span.classList.add("round");

  label.append(input)
  label.append(span)

  liThird.append(label)

  ul.append(liFirst)
  ul.append(liSecond)
  ul.append(liThird)
  button.append(ul)

  list.append(button)
}

如果要向dom添加元素,可以使用:

var-element=document.createElement(标记名);

然后附加您的元素

您可以将事件侦听器添加到
元素
,如果需要,还可以在前面添加类

评论回答

您需要的代码可能是这样的:

function addItem() { 
  var list = document.getElementById('list-group')

  //Button
  var button = document.createElement('button');
  button.classList.add("list-group-item");

  //Ul
  var ul = document.createElement('ul');
  ul.classList.add("desc");

  //li
  var liFirst = document.createElement('li');
  var liSecond = document.createElement('li');
  var liThird = document.createElement('li');
  liFirst.innerHTML = "Lamp"
  liSecond.innerHTML = "5 kwH"

  //Label
  var label = document.createElement('label');
  label.classList.add("switch");
  var input = document.createElement('input');
  input.type = 'checkbox';
  var span = document.createElement('span');
  span.classList.add("slider");
  span.classList.add("round");

  label.append(input)
  label.append(span)

  liThird.append(label)

  ul.append(liFirst)
  ul.append(liSecond)
  ul.append(liThird)
  button.append(ul)

  list.append(button)
}

您需要将函数作为参数传递,而不是调用它:

// wrong:
document.querySelector('.fa-plus').addEventListener('click', addElement());

// right:
document.querySelector('.fa-plus').addEventListener('click', addElement);

addEventListener
需要一个回调函数,如果先调用该函数,则将函数的结果作为参数发送,这是错误的


您需要传递
addElement
函数,因此
addEventListener
调用它。

您需要将函数作为参数传递,而不是调用它:

// wrong:
document.querySelector('.fa-plus').addEventListener('click', addElement());

// right:
document.querySelector('.fa-plus').addEventListener('click', addElement);

addEventListener
需要一个回调函数,如果先调用该函数,则将函数的结果作为参数发送,这是错误的


您需要传递
addElement
函数,因此
addEventListener
调用它。

标记和代码中都有一些语义错误。首先,
标记和代码中都有一些语义错误。首先,
得到了它

function addItem() {
var list = document.getElementById('list-group')
var button = document.createElement('button');
var ul = document.createElement('ul');
var liFirst = document.createElement('li');
var liSecond = document.createElement('li');
var liThird = document.createElement('li');

button.classList.add("list-group-item");
ul.classList.add("desc");
liFirst.classList.add("t-desc")
liSecond.classList.add("t-desc2")
liThird.classList.add("t-desc3")
liFirst.innerText = 'TV'
liSecond.innerText = '5kwh'
liThird.innerHTML = `<label class="switch">
<input type="checkbox">
<span class="slider round"></span>
</label>`

ul.append(liFirst)
ul.append(liSecond)
ul.append(liThird)
button.append(ul)

list.append(button)
函数addItem(){
var list=document.getElementById('list-group')
var button=document.createElement('button');
var ul=document.createElement('ul');
var liFirst=document.createElement('li');
var lissecond=document.createElement('li');
var litird=document.createElement('li');
button.classList.add(“列表组项”);
ul.类别列表。添加(“说明”);
liffirst.classList.add(“t-desc”)
lissecond.classList.add(“t-desc2”)
litird.classList.add(“t-desc3”)
liFirst.innerText='TV'
lissecond.innerText='5kwh'
litird.innerHTML=`
`
ul.附加(liFirst)
ul.追加(lissecond)
ul.附加(LITHRD)
按钮。附加(ul)
list.append(按钮)
}明白了

function addItem() {
var list = document.getElementById('list-group')
var button = document.createElement('button');
var ul = document.createElement('ul');
var liFirst = document.createElement('li');
var liSecond = document.createElement('li');
var liThird = document.createElement('li');

button.classList.add("list-group-item");
ul.classList.add("desc");
liFirst.classList.add("t-desc")
liSecond.classList.add("t-desc2")
liThird.classList.add("t-desc3")
liFirst.innerText = 'TV'
liSecond.innerText = '5kwh'
liThird.innerHTML = `<label class="switch">
<input type="checkbox">
<span class="slider round"></span>
</label>`

ul.append(liFirst)
ul.append(liSecond)
ul.append(liThird)
button.append(ul)

list.append(button)
函数addItem(){
var list=document.getElementById('list-group')
var button=document.createElement('button');
var ul=document.createElement('ul');
var liFirst=document.createElement('li');
var lissecond=document.createElement('li');
var litird=document.createElement('li');
button.classList.add(“列表组项”);
ul.类别列表。添加(“说明”);
liffirst.classList.add(“t-desc”)
lissecond.classList.add(“t-desc2”)
litird.classList.add(“t-desc3”)
liFirst.innerText='TV'
lissecond.innerText='5kwh'
litird.innerHTML=`
`
ul.附加(liFirst)
ul.追加(lissecond)
ul.附加(LITHRD)
按钮。附加(ul)
list.append(按钮)

}

addEventListener
接受一个函数。看起来您遗漏了一些代码?请删除
addEventListener
上addElement中的
()
。它的性能类似于
IIF
工作,但不添加相同的按钮“在javascript中调用按钮标记
li
会让其他人感到困惑。
addEventListener
接受一个函数。看起来你漏掉了一些代码?删除
addeventlistener
上addElement中的
()
。它就像
IIF
一样工作,但不添加相同的“按钮”,你会让其他人在javascript中调用按钮标签
li
时感到困惑。差不多了,但如何添加“desc”类呢这个类是esential
element.classList.add(“desc”)
,元素必须在(
var element=document.getElementMyId(…)
之前定义,如果元素存在于DOM中,或者
var element=document.createElement(…)
如果您创建了元素)这对某些方面有效,但是添加了空的“按钮”函数addItem()中没有ul和li({var modal=document.getElementById('list-group');//modalContent被创建并插入到id为myModal modalContent=document.createElement(“按钮”);modalContent.classList.add(“列表组项”);modalContent.classList.add(“描述”)的元素中;modal.append(modalContent)}
我不明白您需要什么,我做了一个编辑,希望它能工作这是我在控制台中得到的
几乎在那里,但是如何添加“desc”类这个类是重要的
元素。classList.add(“desc”)
,元素必须在前面定义(
var-element=document.getElementMyId(…)
如果DOM中存在元素,或者
var-element=document.createElement(…)
如果创建元素)这是如何工作的,但是添加了空的“按钮”,其中没有ul和li
函数addItem(){var-modal=document.getElementById('list-group'));//modalContent被创建并插入到id为myModal modalContent=document.createElement(“按钮”);modalContent.classList.add(“列表组项”);modalContent.classList.add(“描述”);modal.append(modalContent)}
我不明白您需要什么,我做了一个编辑,希望它能工作这就是我在控制台中得到的>
  • 最后一个问题如何附加到添加按钮,而不是在列表末尾,而是在Begging?使用
    prepend
    而不是
    append
    最后一个问题如何附加到添加按钮,而不是在列表末尾,而是在Begging?使用
    prepend
    而不是
    append