jQuery Вставить набор атрибутов в виде строки в тег - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть переменная x, которая содержит набор атрибутов.

var x = 'class="test test1 test2" id="xyz" style="color:red"';

Как я могу вставить x в тег <body>. так тело выглядит как

<body class="test test1 test2" id="xyz" style="color:red">

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

вы можете создать элемент temp и атрибуты att для него, а затем добавить все его атрибуты в тело:

var x = 'class="test test1 test2" id="xyz" style="color:red"',
    temp = $("<b "+x+">")[0],
    attr = {};
for (var i=0, attrs=temp.attributes, l=attrs.length; i<l; i++){
    attr[attrs.item(i).nodeName] = attrs.item(i).value;
}

$("body").attr(attr);

демо: http://jsbin.com/udilib/edit#javascript,html,live

но если затем вы можете сделать класс, идентификатор и стиль в качестве объекта вместо строки, то сохраните некоторый код для вас.

1 голос
/ 14 сентября 2011

Это, вероятно, не является пуленепробиваемым, но, похоже, отлично справится с вашим примером ввода:

var x = 'class="test test1 test2" id="xyz" style="color:red"',
    pairs = x.match(/\w+\=\"[^\"]+\"/g),
    $body = $('body');
for (var i = 0, len = pairs.length; i < len; i++) {
    var parts = pairs[i].split('='),
        attrName = parts[0],
        attrValue = parts[1].replace(/\"/g, '');
    $body.attr(attrName, attrValue);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...