JavaScript substr на jQuery html () переменной JavaScript - PullRequest
0 голосов
/ 24 декабря 2010

Я пытаюсь спросить, что когда я запускаю цикл .each в jQuery, используя следующую строку:

$('.list :checkbox').each(function()
{
    var type = $(this).attr('value');
    Build += type + ', ';

    return Build;
});

Но теперь мне нужно удалить последний ", "(без кавычек), так как он создает список следующим образом:

Item 1, Item 2, Item 3, Item 4, Item 5,

Затем его нужно добавить в функцию html(), которая работает хорошо, но при попытке удалить последний", "не делаетне работает, делая это:

Build.substr(-1);

$('#list-box').html(Build);

Но это не сработает.

Ответы [ 6 ]

2 голосов
/ 24 декабря 2010

Вы можете упростить свой код с помощью чего-то вроде этого:

(обновлено)

var arr = $(":checkbox").map(function() {
    return this.value;
}).get();


$('#list-box').html(arr.join(","));

Попробуйте здесь: http://jsfiddle.net/andrewwhitaker/rXB2K/ (также обновлено)

  • Использует функцию map() для преобразования массива результатов jquery в массив значений флажков.
  • Вызовы join(), разделяя каждое значение запятой.
1 голос
/ 24 декабря 2010

@ YouBook: Попробуйте

Build.substr(0, Build.length - 1);

.

0 голосов
/ 24 декабря 2010

Вместо этого:

return Build;

напишите это:

return Build.substr(0, Build.length-1);
0 голосов
/ 24 декабря 2010
Build = Build.slice(0,-1);

работает?

0 голосов
/ 24 декабря 2010

Вы пробовали использовать подстроку вместо подстрок?например,

Build.substring(Build.length - 1);
0 голосов
/ 24 декабря 2010

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

Кроме того, строки являются неизменяемыми в JS, поэтому

   build = build.substring(0, b.length-1)

Это функция общего назначения, называемая join на большинстве языков, ее следует использовать как служебную функцию.

Следует учитывать возможность списка нулевой длины.

...