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

时间:2012-05-04 18:44:45

标签: javascript jquery

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

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

当我点击“添加文字”按钮时,创建的所有动态链接的文本应包含文本“文本”。

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

如何制作它以便我可以将“文本”放入所有动态创建的链接中?

注意:像这样的东西

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

对我来说不起作用,因为按钮一直存在,它是通过点击“添加链接”按钮动态创建的“a”。

6 个答案:

答案 0 :(得分:1)

$('button').on('click', function() {
   /* your code */
});

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

答案 1 :(得分:1)

按照我在评论中提到的方式尝试以下内容

$('#addLink').on('click', function () {
    $(body).append('<a href="' + someURL + '" class="newLink"></a>');
});

$('#addText').on('click', function () {
    $('a.newLink').text('New Link'); 
});

答案 2 :(得分:0)

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

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

然后

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

如果您希望同时创建@

答案 3 :(得分:0)

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

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

$('#addText').click(function(){
    $('a').text('Text');
});

只要在点击事件发生后创建了jQuery对象($('a')),一切都应该按照你的描述工作。

答案 4 :(得分:0)

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

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

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

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

$('buttonforaddtext')

答案 5 :(得分:0)

您的问题可能是实时超出了已弃用状态,或者您没有自己认为的HTML。由于您在回调中重新查询文本插入的A标记,而按钮是静态HTML,因此您不需要“实时”或“委托”或“打开”。只需做一个简单的.click