Подтвердить что ты не робот

Удалите все HTML файлы в строке (с помощью функции jquery text())

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

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


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

4b9b3361

Ответ 1

var myContent = '<div id="test">Hello <span>world!</span></div>';

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

Это приводит к приветствующему миру. Отвечает ли это на ваш вопрос?

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

Ответ 2

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

$(document).ready(function() {
    var myContent = '<div id="test">Hello <span>world!</span></div>';
    alert(myContent.replace(/(<([^>]+)>)/ig,""));
});

Ответ 3

Если вам нужно удалить 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 полностью удаляет теги script, которые полезны в качестве защиты от взлома для пользовательских входов.

$('<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"

Ответ 4

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

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

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

Ответ 5

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

 $("<p>").html(myContent).text();

Ответ 6

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

$(myContent).text().trim()