заменить запятые пробелами из массива json - PullRequest
4 голосов
/ 15 июня 2010

У меня есть функция создания цикла:

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

Как заменить запятые между тегами пробелами. Также есть способ, которым я могу отправить теги к атрибуту "class" вместо "name". Кажется, не работает в Safari.

Ответы [ 4 ]

10 голосов
/ 15 июня 2010

Что вы, вероятно, хотите, это:

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

По умолчанию, когда вы приводите массив к строке, он соединяется запятыми, как вы видели. Использование join() решит проблему.

Кроме того, class является зарезервированным ключевым словом во всех браузерах (хотя некоторые не выдают ошибку, если вы его используете) , поэтому атрибут, который вы должны использовать для установки класса, называется className

1 голос
/ 15 июня 2010

Попробуйте это:

$.each(data.posts, function(i, post){ 
 $('<li >', {id: this.id , name: post.tags.join(' ')});  
});
0 голосов
/ 15 июня 2010

Используйте метод замены строки (как упоминалось в других ответах), чтобы заменить запятые.

Что касается классов, добавьте их следующим образом:

$('<li >', {id: this.id }).addClass(post.tags.join(' '));
0 голосов
/ 15 июня 2010
$.each(data.posts, function(i, post) {
    $('<li >', {id: this.id , name: post.tags.replace(/[,]/g, ' ')})
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...