如何将 DOM 元素附加到动态新添加的 DOM 元素

Posted

技术标签:

【中文标题】如何将 DOM 元素附加到动态新添加的 DOM 元素【英文标题】:How do I append DOM-elements to dynamically newly added DOM-elements 【发布时间】:2019-05-24 21:31:34 【问题描述】:

通过单击汉堡按钮将下拉菜单动态添加到 DOM。我想动态地将一些内容附加到这个动态创建的下拉菜单中。

我尝试了 append 方法。正如预期的那样,这不起作用,因为在执行代码时下拉菜单不存在。

$(".dynamicallyaddeddropdownmenu").append("some content");

我也试过了:

$(document).on("focus", ".dynamicallyaddeddropdownmenu", function()
    $(".dynamicallyaddeddropdownmenu").append("some content");
);

CSS::after 不起作用,因为添加的内容必须是可点击的。

【问题讨论】:

您需要提供更多背景信息或问题的工作示例。第二个 sn-p 将起作用,前提是您的元素可以被关注。 尝试在创建动态元素的代码之后使用 append 函数 【参考方案1】:

假设您有 html,单击按钮会生成动态下拉列表:

$('#btn').click(function () 
        if ($('.dynamicallyaddeddropdownmenu').length == 0) 
        $('#div1').append('<select class="dynamicallyaddeddropdownmenu"></select>');
        AppendInDropdown();
    
    );
    function AppendInDropdown() 
        $('.dynamicallyaddeddropdownmenu').focus(function () 
            $(".dynamicallyaddeddropdownmenu").append('<option value="1">1</option>'); //append some content
        );
    
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="div1"></div>
<br />
<input type="button" id="btn" value="Click Me" />

动态添加下拉菜单时需要调用 AppendInDropdown() 函数

【讨论】:

谢谢,我会调查的!谢谢!【参考方案2】:

我不是 javascript 专家,但我之前在使用 jQuery 时遇到过这个问题,我记得当我使用 .after() 而不是 .append().on() 变体来动态添加项目时,它确实有效。

【讨论】:

以上是关于如何将 DOM 元素附加到动态新添加的 DOM 元素的主要内容,如果未能解决你的问题,请参考以下文章

Onclick + set attr 检查动态 DOM 元素不起作用 [重复]

在 DOM 中附加一个动态(新)创建的元素

在 DOM 中的所有元素上附加 click 事件的事件处理程序

角度 5 - 如何从 dom 中删除动态添加的组件

是否可以将元素添加到 React 的虚拟 DOM 但使用 jQuery 附加到真实 DOM?

如何将动态 TailwindCSS 类添加到 React 中的 DOM 元素