Ответ 1
Клонировать объект:
template = $("#template").clone();
template.attr("id","newid");
template.appendTo("body");
У меня есть некоторые проблемы с этим:
template = $("#template");
$(template).attr("id", "newid");
$(template).appendTo("body");
Что я хочу сделать, это назначить идентификатор шаблону, а затем изменить его. Проблема в том, что я в настоящее время ссылаюсь на фактический элемент шаблона, и поэтому идентификатор меняет это. При повторном использовании этого шаблона я не могу выбрать, когда id отличается.
Любые советы по оптимальному подходу?
Клонировать объект:
template = $("#template").clone();
template.attr("id","newid");
template.appendTo("body");
Еще три примечания к вашему коду:
Итак, ваш код будет выглядеть так:
var $template = $("#template").clone();
$template.attr("id", "newid");
$template.appendTo("body");
HTML5 содержит элемент template
:
contents = $('#template').html();
copy = $('<div id="copy"></div>');
$('body').append(copy.append(contents));
Часть HTML:
<html>
<body>
<template id='template'>
</template>
</body>
</html>
Недопустимый метод clone
.
Решение с 3 строками будет работать, но я предлагаю однострочное решение для стиля jQuery:
$('#template').clone().attr('id', 'newid').appendTo('body');
Вы можете использовать метод clone() следующим образом:
template = $('#template').clone();
template.attr('id', 'newid');
template.appendTo('body');
Посмотрите http://api.jquery.com/clone/ для получения дополнительной информации.