jQuery - 在地图函数中替换
jQuery - replace in map function
我正在使用以下地图函数创建 HTML
createHtml: function (data) {
var values = data.map(function(val) {
return this.li.replace("{{TEXT}}", val.name);
},{li:this.values });
this.$ele.html(this.lis.replace("{{NAME}}","cd-view").replace("
{{ITEMS}}", values.join("")));
}
通过在我的 HTML 上显示用户名可以正常工作,但是当我将上面的代码修改为以下代码以向这些用户名添加 id 属性时,我的 html 将 id 属性呈现为 {{ ID}} 而不是 1 或任何 id 值
createHtml: function (data) {
var values = data.map(function(val) {
**this.li.replace("{{ID}}", item.id);** -- added newly
return this.li.replace("{{USER}}", val.name);
},{li:this.values });
this.$ele.html(this.lis.replace("{{NAME}}","cd-view").replace("
{{ITEMS}}", values.join("")));
}
谁能告诉我问题出在哪里?
这个问题是因为replace()
returns一个字符串,它不影响原来的this.li
值。
要解决此问题,您需要调用 replace()
来更改 {{ID}}
并存储结果。然后你可以在这个结果上再次调用 replace()
来改变 {{USER}}
,像这样:
createHtml: function(data) {
var values = data.map(function(val) {
var str = this.li.replace("{{ID}}", item.id);
return str.replace("{{USER}}", val.name);
}, {
li: this.values
});
this.$ele.html(this.lis.replace("{{NAME}}", "cd-view").replace("{{ITEMS}}", values.join("")));
}
我正在使用以下地图函数创建 HTML
createHtml: function (data) {
var values = data.map(function(val) {
return this.li.replace("{{TEXT}}", val.name);
},{li:this.values });
this.$ele.html(this.lis.replace("{{NAME}}","cd-view").replace("
{{ITEMS}}", values.join("")));
}
通过在我的 HTML 上显示用户名可以正常工作,但是当我将上面的代码修改为以下代码以向这些用户名添加 id 属性时,我的 html 将 id 属性呈现为 {{ ID}} 而不是 1 或任何 id 值
createHtml: function (data) {
var values = data.map(function(val) {
**this.li.replace("{{ID}}", item.id);** -- added newly
return this.li.replace("{{USER}}", val.name);
},{li:this.values });
this.$ele.html(this.lis.replace("{{NAME}}","cd-view").replace("
{{ITEMS}}", values.join("")));
}
谁能告诉我问题出在哪里?
这个问题是因为replace()
returns一个字符串,它不影响原来的this.li
值。
要解决此问题,您需要调用 replace()
来更改 {{ID}}
并存储结果。然后你可以在这个结果上再次调用 replace()
来改变 {{USER}}
,像这样:
createHtml: function(data) {
var values = data.map(function(val) {
var str = this.li.replace("{{ID}}", item.id);
return str.replace("{{USER}}", val.name);
}, {
li: this.values
});
this.$ele.html(this.lis.replace("{{NAME}}", "cd-view").replace("{{ITEMS}}", values.join("")));
}