Конкатенация в jQuery - PullRequest
       38

Конкатенация в jQuery

2 голосов
/ 11 марта 2010
var os = $.client.os; // mac
var browser = $.client.browser; // firefox
var browserversion = $.client.browserversion; // 3
$('#root').addClass( os + browser + browserversion );

.. приводит к <div id="root" class="macfirefox3">. Как мне добавить пробелы между ними?

Ответы [ 4 ]

6 голосов
/ 11 марта 2010
$('#root').addClass( os + " " + browser + " " + browserversion );
4 голосов
/ 11 марта 2010

Еще один вариант того же:

$('#root').addClass([
    $.client.os,
    $.client.browser,
    $.client.browserversion
].join(' '));
1 голос
/ 11 марта 2010

Учитывая философию jQuery, метод addClass должен действительно принимать массив или несколько строк в качестве аргументов без необходимости их конкатенации.

Итак, вот мой плагин с 2 центами, называемый addClasses, по сути, оболочка вокруг того, что сделал Марко.

jQuery.fn.addClasses = function() {
    var classes = [];
    $.each(arguments, function(index, name) {
        classes.push(name);
    });
    this.addClass(classes.join(' '));
};

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

$('div').addClasses('message', 'greeting', 'w00t');
0 голосов
/ 11 марта 2010

Вам тоже нужно объединить пробелы, Сокол уже дал вам пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...