Javascript 用json数组中的空格替换逗号
我有一个循环函数创建:Javascript 用json数组中的空格替换逗号,javascript,jquery,json,Javascript,Jquery,Json,我有一个循环函数创建: <li id="id1" name="Tag1,Tag2,Tag3"> <li id="id2" name="Tag1,Tag2,Tag3"> $.each(data.posts, function(i, post){ $('<li >', {id: this.id , name: post.tags}) }); $.each(data.posts,function(i,post){ $(“”,{id:th
<li id="id1" name="Tag1,Tag2,Tag3">
<li id="id2" name="Tag1,Tag2,Tag3">
$.each(data.posts, function(i, post){
$('<li >', {id: this.id , name: post.tags})
});
$.each(data.posts,function(i,post){
$(“ ”,{id:this.id,name:post.tags})
});
如何用空格替换标记之间的逗号。
还有一种方法可以将标记发送到“class”属性而不是“name”。它在Safari中似乎不起作用。试试这个:
$.each(data.posts, function(i, post){
$('<li >', {id: this.id , name: post.tags.join(' ')});
});
$.each(data.posts,function(i,post){
$(“”,{id:this.id,name:post.tags.join(“”)});
});
您可能想要的是:
$('<li >', {id: this.id , className : post.tags.join(' ')})
$(“”,{id:this.id,className:post.tags.join(“”)})
默认情况下,当您将数组强制转换为字符串时,它会与逗号连接,如您所见。使用join()
将解决此问题
另外,class
在所有浏览器中都是保留关键字(尽管如果您使用它,有些浏览器不会抛出错误),因此应该用于设置类的属性称为className
$。每个(data.posts,function(i,post){
$.each(data.posts, function(i, post) {
$('<li >', {id: this.id , name: post.tags.replace(/[,]/g, ' ')})
});
$(“”,{id:this.id,name:post.tags.replace(/[,]/g,,)})
});
使用替换字符串方法(如其他回复中所述)替换逗号
对于类,按如下方式添加它们:
$('<li >', {id: this.id }).addClass(post.tags.join(' '));
$(“”,{id:this.id}).addClass(post.tags.join(“”));
+1,类是一个必须避免使用的标识符……以上假设标记是一个数组(显然Alex的情况就是这样)。如果tags是一个字符串,则可以执行“tags.split(',).join('')或“tags.replace(/,/g,”)”操作。您还可以执行“class”作为键,使用引号这将仅替换第一个','。要替换全部,您需要传递一个正则表达式,并将“g”选项设置为第一个参数,如我上面的注释所示。(当然,这也假设标记是一个字符串,而不是一个数组)哎呀,我实际上并没有看那个部分,正如前面提到的,我从上面复制了代码。addClass是添加类的正确方法,而不是我刚才演示的“className”属性。我已经调整了代码以正确地显示标签,对此表示抱歉。