Примере:
html = '<font><a>Test Message</a></font>';
html = html.find('font').remove();
Ожидая выхода:
<a>Test Message</a>
На самом деле этот код не работает. Пожалуйста, помогите мне решить мою проблему.
5 ответов
Поскольку у вас есть строка , содержащая разметку HTML, вы можете использовать функции замены строк для удаления нежелательных элементов.
Чтобы удалить только <font>
и </font>
, вы можете использовать регулярное выражение здесь.
html = '<font><a>Test Message</a></font>';
html = html.replace(/<\/?font>/g, '');
document.getElementById('result').innerText = html;
console.log(html);
<pre id="result"></pre>
Объяснение регулярного выражения:
/<\/?font>/g
соответствует строкам <font>
и </font>
. \/?
будет соответствовать нулю или единице /
.
Предупреждение: Флаг g
в регулярном выражении заменит все совпадения в строке. Таким образом, если строка содержит более одного font
элемента, все будут удалены.
Примечание. Использование jQuery remove()
также удалит потомков <font>
.
Вы также можете использовать методы jQuery html()
следующим образом:
html = '<font><a>Test Message</a> </font>';
html = $(html).html();
// To show result on page
$(document.body).text(html);
console.log(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Используйте jquery unwrap для удаления родителя тега a
font
Затем добавьте его в динамически созданный div и вызовите метод html
, чтобы получить результат пытаться:
html = $('<div>').append($(html).find('a').unwrap()).html();
https://jsfiddle.net/p0acop2k/
Вы можете использовать это так
$(html).find('font').remove();
как прокомментировал @Tushar Примечание: это также удалит элемент привязки внутри
<font>
, в результате чего получается пустая строка,
Так что вы можете использовать
html = '<font><a>Test Message</a></font>';
new_html = $(html).find('a').clone(); // this is just an anchor
// now your new html is <a>Test Message</a>
html = $('<font><a>Test Message</a></font>');
html.find('font').contents().unwrap();
console.log(html.html());
Чтобы удалить элементы и контент, в основном нужно использовать два метода jQuery:
$(html).find(selector).remove()
- удаляет выбранный элемент (и его дочерние элементы)$(html).find(selector).empty()
- удаляет дочерние элементы из выбранного элемента
Дайте более подробный код, если вам нужен более подробный ответ с правым селектором.
Ссылки на jQuery для удаления и пустые методы.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.