У меня есть кнопка 1 и текст в моем HTML-коде, например:
function get_content(){
// I don't know how to do in here!!!
}
<input type="button" onclick="get_content()" value="Get Content"/>
<p id='txt'>
<span class="A">I am</span>
<span class="B">working in </span>
<span class="C">ABC company.</span>
</p>
Когда пользователь нажимает кнопку, содержимое в <p id='txt'>
будет иметь следующий ожидаемый результат:
<p id='txt'>
// All the HTML element within the <p> will be disappear
I am working in ABC company.
</p>
Может ли кто-нибудь помочь мне, как написать функцию JavaScript?
Спасибо.
javascript
html
Джон
источник
источник
Ответы:
[2017-07-25] поскольку это по-прежнему общепринятый ответ, несмотря на то, что это очень хакерское решение, я включаю в него код Габи , оставляя свой собственный в качестве плохого примера.
источник
Вы можете использовать это:
В зависимости от того, что вам нужно, вы можете использовать либо
element.innerText
илиelement.textContent
. Они во многом различаются.innerText
пытается приблизиться к тому, что произошло бы, если бы вы выбрали то, что вы видите (визуализированный HTML), и скопировали его в буфер обмена, в то время какtextContent
просто удалит теги html и даст вам то, что осталось.innerText
также имеет совместимость со старыми браузерами IE (оттуда).источник
text
метод, так как он часто выполняется в цикле. jQuery был недостаточно производительным, но очень быстро. Работал в IE8 +, chrome, ff. Отлично.el.textContent
будетundefined
иel.innerText
может быть""
. Но"" || undefined
естьundefined
. Использованиеel.innerText || el.textContent || ''
может быть лучше.el.textContent || el.innerText || ""
.var text = element.textContent;
; если только по какой-то нечестивой причине вам все равно придется поддерживать IE8 или ниже .el.innerText
примерно то же самое, что иel.textContent.replace(/\W+/g, ' ')
. Они не одинаковы.Если вы можете использовать jquery, то это просто
источник
filter
собственности я знаю , что чистый JS является технически более эффективным , когда речь идет о скорости, но это вряд ли имеет значение больше в большинстве нормально ...document.querySelector("#txt").innerText;
люди слишком часто включают всю библиотеку jQuery, когда им нужна всего лишь пара строк кода. Это плохая практика.Этот ответ будет работать, чтобы получить только текст для любого элемента HTML.
Этот первый параметр «узел» - это элемент, из которого нужно получить текст. Второй параметр является необязательным, и если он имеет значение true, добавляется пробел между текстом внутри элементов, если в противном случае там не было бы пробела.
источник
В зависимости от того, что вам нужно, вы можете использовать либо
element.innerText
илиelement.textContent
. Они во многом различаются.innerText
пытается приблизиться к тому, что произойдет, если вы выберете то, что видите (визуализированный html), и скопируете его в буфер обмена, в то время какtextContent
просто удалит теги html и даст вам то, что осталось.innerText
больше не используется только для IE и поддерживается во всех основных браузерах . Конечно, в отличие от негоtextContent
, он совместим со старыми браузерами IE (поскольку они его придумали).Полный пример (из ответа Габи ):
источник
Это работает для меня, скомпилировано на основе того, что было сказано здесь, с более современным стандартом. Это лучше всего подходит для множественных просмотров.
источник
Это должно работать:
Попробуйте эту скрипку: http://jsfiddle.net/7gnyc/2/
источник
Это должно сработать.
источник
Попробуйте (краткая версия идеи ответа Габи )
Показать фрагмент кода
источник
Вы хотите изменить
I am working in ABC company.
ToI am working in ABC company.
. Это те же самые строки, поэтому я не вижу причин для этого, но вы можете сделать это с помощью JavaScriptinnerHTML
илиtextContent
.element.innerHTML
- это свойство, определяющее HTML внутри элемента. Если выelement.innerHTML = "<strong>This is bold</strong>
введете текст, он выделит жирным шрифтом текст «Это жирный».element.textContent
, с другой стороны, устанавливает текст в элементе. Если вы используетеelement.textContent = "<strong>This is bold</strong>
, текст «Это полужирный» не будет полужирным. Пользователь буквально увидит текст « Это жирныйВ вашем случае вы можете использовать любой из них. Я воспользуюсь
.textContent
. Код для изменения<p>
элемента приведен ниже.Это, к сожалению, не изменит его, потому что он изменит его на тот же самый точный текст. Вы можете случайно изменить строку «Я работаю в компании ABC». к чему-то другому.
источник