Объединить значения...

MilkeyWay

Постоялец
Регистрация
11 Июл 2011
Сообщения
142
Реакции
10
Всем ку! Только начал изучать Jquery и не всегда получается найти ответ в гугле.

есть такой скрипт:
Код:
var arrfilters = [];
arrfilters["m"] = [];
       
$("span.selected").each(function(i, n) {

      arrfilters.m.push($(n).attr("data-toggle"));

           
});

Задача выбрать все selected и добавить их attr в одну строку,что-то типа: m: 123, qqqq, 456

Сами атрибуты в массив попадают,но с индексами:m: 0:123, 1:qqqq: 2:456

а вот как их объединить,пробовал join,но что-то не срослось,направьте на путь истинный
 
получилось тоже самое:
Код:
Object { m: Array[3] }

Array[3]
0:"123"
1:"qqqq"
2:"456"

нужно чтобы было так:
Object { m: 123, qqqq, 456 }
 
получилось тоже самое:
Код:
Object { m: Array[3] }

Array[3]
0:"123"
1:"qqqq"
2:"456"

нужно чтобы было так:
Object { m: 123, qqqq, 456 }
Массив имеет индексы - это нормально. Нужна строка - добавьте join.
HTML:
var arrfilters = {};
arrfilters.m = $('span.selected').map(function() {
    return $(this).data('toggle');
}).get().join();
 
Массив имеет индексы - это нормально. Нужна строка - добавьте join.
HTML:
var arrfilters = {};
arrfilters.m = $('span.selected').map(function() {
    return $(this).data('toggle');
}).get().join();

респект и уважуха)


можете в двух словах объснить почему такой способ не срабатывает?:

var arrfilters = {};
arrfilters.m = $('span.selected').map(function() {
return $(this).data('toggle');
}).get();

arrfilters.m.join();

какова роль .get()?
и можно ли в данном случае было использовать each?
 
можете в двух словах объснить почему такой способ не срабатывает?:

var arrfilters = {};
arrfilters.m = $('span.selected').map(function() {
return $(this).data('toggle');
}).get();

arrfilters.m.join();
Почему не срабатывает? Должен срабатывать. arrfilters.m.join() - вернет строку, что вам и нужно насколько я понимаю.
какова роль .get()
- map по сути возвращает jquery объекты, с помощью get оставляем нужный нам массив.
и можно ли в данном случае было использовать each?
Думаю, можно, почему нет. Я чего-то сразу не понял какой тип данных вы хотели получить.
Вам можно было сразу использовать обыкновенную конкатенацию строк
HTML:
var arrfilters = {};
arrfilters.m = '';
$('span.selected').attr('data-toggle', function(i,v){
   arrfilters.m += v +',';
});
 
Последнее редактирование:
дабы не плодить темы,задам тут вопрос,мб поможет кто:

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

Код:
{"m":"f,l"}
 
Назад
Сверху