Как создать несколько элементов HTML с помощью jQuery? - PullRequest
7 голосов
/ 14 апреля 2009

Я пытаюсь создать элемент управления пейджером таблиц с помощью jQuery. Он содержит много ссылок и пролетов. Мне удалось сделать это с помощью простой конкатенации строк, но я не могу поверить, что jQuery не может сделать это более элегантным. Я не могу использовать jTemplates здесь, так как генерация имеет немного процедурной логики.

Вопрос: есть ли способ создать массив элементов HTML с помощью jQuery и добавить их в какой-нибудь контейнер?

Спасибо.

Ответы [ 3 ]

22 голосов
/ 14 апреля 2009

$('<strong>First Element</strong>').add($('<i>Second Element</i>')).appendTo($('body'))

9 голосов
/ 14 апреля 2009

Конкатенация строк (или Array.join) - это хорошо, если вы делаете это красивым;)

var structure = [
    '<div id="something">',
        '<span>Hello!</span>',
    '</div>'
];

$(structure.join('')).appendTo(container);
5 голосов
/ 14 апреля 2009

Всегда есть append () .

$('#container').append('<span>foobar baz</span>');

Мне кажется, что просто использование конкатенации строк и добавления будет наименее сложным и, вероятно, самым быстрым вариантом. Однако ниже приведен непроверенный пример способа (возможно) упростить создание элементов и позволить вам добавить их к данному родительскому элементу:

function elemCreate(type, content, attrs) {
   /* type: string tag name
    * content: string element content
    * attrs: associative array of attrs and values
    */
    elem = '<' + type + '></' + type + '>'
    e = $(elem).attr(attrs)
    e.append(content)
    return e
}

stuff = [];    
stuff.push(elemCreate('a', 'Click me!', {'href': 'http://stackoverflow.com'});

$(stuff).appendTo($('#container'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...