Примере:

html = '<font><a>Test Message</a></font>';

html = html.find('font').remove();

Ожидая выхода:

<a>Test Message</a>

На самом деле этот код не работает. Пожалуйста, помогите мне решить мою проблему.

0
Dinesh G 14 Дек 2015 в 08:42

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>
3
Tushar 14 Дек 2015 в 06:02

Используйте jquery unwrap для удаления родителя тега a font Затем добавьте его в динамически созданный div и вызовите метод html, чтобы получить результат пытаться:

  html =  $('<div>').append($(html).find('a').unwrap()).html();

https://jsfiddle.net/p0acop2k/

2
madalinivascu 14 Дек 2015 в 05:52

Вы можете использовать это так

$(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>
1
Mr Lister 20 Дек 2015 в 08:35
html = $('<font><a>Test Message</a></font>');
html.find('font').contents().unwrap();
console.log(html.html());
0
Rustem Gafurov 10 Сен 2019 в 14:55

Чтобы удалить элементы и контент, в основном нужно использовать два метода jQuery:

  • $(html).find(selector).remove() - удаляет выбранный элемент (и его дочерние элементы)

  • $(html).find(selector).empty() - удаляет дочерние элементы из выбранного элемента

Дайте более подробный код, если вам нужен более подробный ответ с правым селектором.

Ссылки на jQuery для удаления и пустые методы.

2
Andriy Ivaneyko 27 Янв 2016 в 09:39