【问题标题】:Javascript: Adding and removing elements to domJavascript:向 dom 添加和删除元素
【发布时间】:2017-11-26 09:51:57
【问题描述】:

我正在尝试向我的 html 动态添加新元素。但我目前被困在“第二级”。它从一个 div 开始,新元素将存储在:

<div id="inputquestions"></div>                   

当我点击一个按钮时,新元素将通过一个看起来像这样的 javascript 函数添加到 div

function addQuestion() {
        var div = document.createElement('div');

        questionID++; // increment questionID to get a unique ID for the new element

        div.className = 'newQuestion';

        div.id = 'newQuestionID';

        div.innerHTML =
            "<div class='input-group'>" +
            "<input id='question-" + questionID + "' class='form-control' name='questionbox' type='text' placeholder='New Question'/>" +
            "<button class='btn btn-secondary' onclick='removeQuestion(this.parentNode)' type='button'>Remove</button>" +
            "</div>" +
            "<div class='btn-group' role='group' aria-label='Basic example'>" +
            "<button class='btn btn-secondary' onclick='addRadioButton()' type='button'>+ Radiobutton</button>" +             
            "</div>";

        document.getElementById('inputquestions').appendChild(div);
    }

这将在第一个 div 中创建多个 div,我现在希望每个 div 为它们单独创建新的 div,但不知道该怎么做。我的函数addRadioButton() 必须是什么样子才能使新的 div 出现在我按下按钮的 div 内?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    在您的函数addRadioButton() 中,您可以查看event.target.parentElement 以获取包含被点击的&lt;button&gt;&lt;div&gt;

    然后将新元素添加到 &lt;div&gt; 中。

    【讨论】:

    • 能否请您指定您的答案或提供一个简短的代码-sn-p?
    • @intervalia 遗漏的是,您可以假设 addRadioButton 将有一个“this”,您可以将其作为参数传递给您的点击处理程序函数:stackoverflow.com/questions/6071095/… 一旦您拥有触发点击你可以使用它访问父元素。
    • 我没有遗漏它。我发现event.target 在所有情况下都更可靠。
    猜你喜欢
    • 2019-02-21
    • 2022-12-31
    • 2011-01-27
    • 2011-11-15
    • 2021-12-19
    • 2019-10-20
    • 2019-03-23
    • 2015-08-13
    • 2019-08-19
    相关资源
    最近更新 更多