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”属性。我已经调整了代码以正确地显示标签,对此表示抱歉。