开发者

replace commas with spaces from json array

I have a looping function creating:

<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})  
});

How do I replace the commas between the tags with spaces开发者_Go百科. Also is there a way I can send the tags to a "class" attribute instead of "name". It seems to not work in Safari.


What you probably want is this:

$('<li >', {id: this.id , className : post.tags.join(' ')})

By default, when you cast an array to a string, it get concatenated with commas as you have seen. Using join() will solve the problem.

Also, class is a reserved keyword in all browsers (though some won't throw an error if you use it), so the attribute you should use for setting the class is called className


Try this:

$.each(data.posts, function(i, post){ 
 $('<li >', {id: this.id , name: post.tags.join(' ')});  
});


$.each(data.posts, function(i, post) {
    $('<li >', {id: this.id , name: post.tags.replace(/[,]/g, ' ')})
});


Use the replace string method (as mentioned in other replies) to replace the commas.

As for the classes, add them like this:

$('<li >', {id: this.id }).addClass(post.tags.join(' '));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜