Кто-нибудь знает, как установить новое имя тега для тега с помощью Jquery? Допустим, у меня есть HTML-документ, и я хочу заменить всю ширину 'fieldset' на 'div'. Заранее спасибо !
замена тега
Ответы (4)
fs = $("fieldset");
for (i = 0; i < fs.length; i++) {
var that = $(fs[i]);
var fieldsetContent = that.html();
that.replaceWith('<div>'+fieldsetContent+'</div>');
};
или попробуйте исправить переполнение этого css css:
fieldset {
display: table-column;
}
<!–[if IE]>
fieldset {
display: block;
}
Чем вы можете установить другие стили.
Вы можете использовать replaceWith или replaceAll для замены элементов.
Вы должны вручную поместить содержимое из старого элемента в новый элемент.
$('fieldset').each(function(object){
var html = this.html();
this.replaceWith('div').html(html)
});
Что-то вроде этого. Код не проверен.
Может быть, проще и эффективнее попытаться решить корень проблемы. Я не могу себе представить, что в Firefox есть что-то жестко закодированное, что приводит к отключению наборов полей. Я на 99% уверен, что это можно исправить с помощью CSS. Может быть, на форумах Mozilla вы сможете найти дополнительную информацию или оперативную помощь? Может быть, помогает проверка наборов полей и элементов div с помощью firebug и сравнение их настроек один за другим?
Я не знаю, в какой среде вы находитесь, но, может быть, проще всего будет настроить страницу «просмотра для печати», которая динамически читает исходную HTML-страницу и выполняет низкоуровневую замену в исходном коде?
В PHP это будет выглядеть так:
$body = str_replace("<fieldset>", "<div>", $body);
$body = str_replace("</fieldset>", "</div>", $body);
Очень низкий уровень, но может работать, если HTML чистый.