如何向动态创建的 DOM 对象添加文本

How to add text to dynamically created DOM objects?

本文关键字:DOM 对象 添加 文本 创建 动态      更新时间:2023-09-26

>假设我有两个按钮"添加链接"和"添加文本"。"添加链接"按钮会自动将以下内容附加到现有页面:

<a href="text.html"></a>

当我单击"添加文本"按钮时,创建的所有动态链接的文本都应包含文本"文本"。

我最初使用"$("a").text("文本")"作为"添加文本"按钮的功能,但它不起作用,因为当用户单击"添加链接"按钮时,链接是动态创建的。

如何使"文本"进入所有动态创建的链接?

注意:像这样的东西

$('buttonforaddtext').live('click', function() {
    $("a").text("Text");
});

对我不起作用,因为该按钮一直存在,它是通过单击"添加链接"按钮动态创建的"a"。

尝试如下,正如我在评论中提到的,

$('#addLink').on('click', function () {
    $(body).append('<a href="' + someURL + '" class="newLink"></a>');
});
$('#addText').on('click', function () {
    $('a.newLink').text('New Link'); 
});
$('button').on('click', function() {
   /* your code */
});

如果你有动态对象,你需要使用.on()让它工作......

var yourLink = $("<a href="+someURL+">"+yourText+"</a>");

var yourLink = $("<a href="+someURL+"/>");
yourLink.html("Text");

然后

yourLink.appendTo($('body'));

如果您希望同时创建@

你描述的对我来说听起来不错。 也许你应该发布你正在使用的代码。 以下方法应该有效:

$('#addLink').click(function(){
    $('body').append('<a href="text.html"></a>');
});
$('#addText').click(function(){
    $('a').text('Text');
});

只要您的 jQuery 对象 ($('a')) 是在点击事件发生后创建的,一切都应该像您描述的那样工作。

你需要使用'.live'方法,正如我们的同事之前所说。碰巧在您尝试绑定事件的那一刻,该元素不会退出并且不起作用。

使用 .live,窗口将继续侦听您选择的元素。

如果您使用的是 jQuery 1.7.+,我建议您使用 .on() 方法绑定事件,并在不再需要它时使用 .off() 解绑它......

PS.:顺便问一下,你想选择什么?

$('buttonforaddtext')

您的问题可能是 live 已弃用,或者您没有您认为拥有的 HTML。由于您在回调中重新查询文本插入的 A 标记,并且按钮是静态 HTML,因此您不需要"实时"或"委托"或"打开"。只需做一个简单的.click键