Удалите все HTML-теги в строке (с помощью функции jquery text ()) - PullRequest
26 голосов
/ 25 октября 2011

возможно ли использовать функцию jquery text () для удаления всего HTML в строке?

Строка с тегами HTML:
myContent = '<div id="test">Hello <span>world!</span></div>';


Результат должен быть:
Hello world!

Ответы [ 6 ]

80 голосов
/ 25 октября 2011
var myContent = '<div id="test">Hello <span>world!</span></div>';

alert($(myContent).text());

Это приводит к привету.Это отвечает на ваш вопрос?

http://jsfiddle.net/D2tEf/ для примера

26 голосов
/ 25 октября 2011

Я создал этот тестовый пример: http://jsfiddle.net/ccQnK/1/, я использовал функцию замены Javascript регулярными выражениями для получения желаемых результатов.

$(document).ready(function() {
    var myContent = '<div id="test">Hello <span>world!</span></div>';
    alert(myContent.replace(/(<([^>]+)>)/ig,""));
});
12 голосов
/ 21 ноября 2014

Если вам нужно удалить HTML, но вы не знаете, содержит ли он какие-либо HTML-теги, вы не можете напрямую использовать метод jQuery, поскольку он возвращает пустую оболочку для текста, отличного от HTML.

$('<div>Hello world</div>').text(); //returns "Hello world"
$('Hello world').text(); //returns empty string ""

Вы должны либо обернуть текст в действительный HTML:

$('<div>' + 'Hello world' + '</div>').text();

Или используйте метод $ .parseHTML () (начиная с jQuery 1.8), который может обрабатывать как HTML, так и не HTML текст:

var html = $.parseHTML('Hello world'); //parseHTML return HTMLCollection
var text = $(html).text(); //use $() to get .text() method

Плюс parseHTML полностью удаляет теги скрипта, что полезно в качестве защиты от взлома для пользовательских вводимых данных.

$('<p>Hello world</p><script>console.log(document.cookie)</script>').text();
//returns "Hello worldconsole.log(document.cookie)"

$($.parseHTML('<p>Hello world</p><script>console.log(document.cookie)</script>')).text();
//returns "Hello world"
7 голосов
/ 25 октября 2011

Не могли бы вы просто попробовать ?

myContent = '<div id="test">Hello <span>world!</span></div>';
console.log($(myContent).text()); //Prints "Hello world!"

Обратите внимание, что вам нужно обернуть строку в объект jQuery, иначе у нее явно не будет метода text.

6 голосов
/ 18 апреля 2016

Другой вариант:

 $("<p>").html(myContent).text();
0 голосов
/ 24 марта 2017

В моем конкретном случае я обнаружил, что мне просто нужно обрезать содержимое.Может быть, не ответ на вопрос.Но я все равно решил добавить этот ответ.

$(myContent).text().trim()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...