我希望"复制" 某些元素并使用 regex 更改其中的部分文字。
到目前为止一切顺利:( / w work fiddle - 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/
我已经提出了一些意见,以便更清楚我想要实现的目标。
答案 0 :(得分:2)
我认为你的问题是你没有将一个元素传递给你的changeLabel
函数,而只是一个字符串。
请看这个解决方案:http://jsfiddle.net/8ohzayyt/26/
以下是我为改进代码而更改的行:
var newContent = $("<hr/><div id='destination'>" + $("#holder").html() + "</div>");
我刚刚将您的HTML包装在$()
中。这会从字符串中创建一个元素。
答案 1 :(得分:1)
尝试:
var newContent = $("<hr/><div id='destination'>" + $("#holder").html() + "</div>");
修改强> 简要说明我做了什么。
为了使$(el).find('div');
工作changeLabel()
需要一个元素。不是将newContent
作为字符串传递,而是将其作为使$(el).find('div');
工作的元素传递。