动态添加新元素并更改其内容

Dynamically add new element and change its content

本文关键字:新元素 添加 元素 动态      更新时间:2023-09-26

我想"复制"某些元素,并用正则表达式更改其中的一些文本。

到目前为止还不错:http://jsfiddle.net/8ohzayyt/25/)

$(document).ready(function () {
    var divs = $('div');
    var patt = /^'d'./;
    var match = null;
    for (i = 0; i < divs.length; i++) {
        match = ($(divs[i]).text().match(patt));
        $(divs[i]).text($(divs[i]).text().replace(match[0], "5."));
    }
});

HTML

<div>1. peppers</div>
<div>2. eggs</div>
<div>3. pizza</div>

这正是我想要的方式,但我想动态添加一些内容,但当我尝试更改复制的divs的内容时,什么都不会发生。

请参考这把小提琴:http://jsfiddle.net/8ohzayyt/24/

我发表了一些评论,以更清楚地表明我想要实现的目标。

我认为您的问题是您没有将元素传递给changeLabel函数,而只是传递了一个字符串。

看看这个解决方案:http://jsfiddle.net/8ohzayyt/26/

这是我为使您的代码工作而更改的行:

var newContent = $("<hr/><div id='destination'>" + $("#holder").html() + "</div>");

我刚刚用$()包装了你的HTML。这将从字符串中创建一个元素。

try:

var newContent = $("<hr/><div id='destination'>" + $("#holder").html() + "</div>");

编辑:简要解释我做了什么。

为了使$(el).find('div');工作,changeLabel()需要一个元素。与将newContent作为字符串传递不同,执行上述操作将使其作为元素传递,从而使$(el).find('div');工作。