Eu tenho o botão 1 e algum texto no meu HTML, como o seguinte:
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>
Quando o usuário clicar no botão, o conteúdo no <p id='txt'>
se tornará o seguinte resultado esperado:
<p id='txt'>
// All the HTML element within the <p> will be disappear
I am working in ABC company.
</p>
Alguém pode me ajudar a escrever a função JavaScript?
Obrigado.
javascript
html
John
fonte
fonte
Respostas:
[25/07/2017] Como essa continua sendo a resposta aceita, apesar de ser uma solução muito hacky, estou incorporando o código de Gabi nele, deixando o meu próprio para servir como um mau exemplo.
fonte
Você pode usar isto:
Dependendo do que você precisa, você pode usar
element.innerText
ouelement.textContent
. Eles diferem de várias maneiras.innerText
tenta aproximar o que aconteceria se você selecionasse o que vê (html renderizado) e copiasse para a área de transferência, enquantotextContent
meio que apenas tira as tags html e fornece o que resta.innerText
também tem compatibilidade com navegadores IE antigos (veio de lá).fonte
text
método de alto desempenho , já que é feito muito em um loop. O jQuery não teve desempenho suficiente, mas isso foi muito rápido. Trabalhou no IE8 +, chrome, ff. Perfeito.el.textContent
seráundefined
eel.innerText
poderá ser""
. Mas"" || undefined
éundefined
. Usarel.innerText || el.textContent || ''
pode ser melhor.el.textContent || el.innerText || ""
.var text = element.textContent;
; a menos que, por algum motivo ímpio, você ainda precise oferecer suporte ao IE8 ou abaixo .el.innerText
é aproximadamente o mesmo queel.textContent.replace(/\W+/g, ' ')
. Eles não são os mesmos.Se você pode usar o jquery, é simples
fonte
filter
propriedade sei que pura JS é tecnicamente mais eficiente quando se trata de velocidade, mas isso pouco importa mais em mais normal ...document.querySelector("#txt").innerText;
As pessoas incluem toda a biblioteca jQuery com muita freqüência quando sua única necessidade é de algumas linhas de código. É uma prática ruim.Esta resposta funcionará para obter apenas o texto para qualquer elemento HTML.
Este primeiro parâmetro "nó" é o elemento para o qual obter o texto. O segundo parâmetro é opcional e, se verdadeiro, adicionará um espaço entre o texto nos elementos, caso não exista espaço nele.
fonte
Dependendo do que você precisa, você pode usar
element.innerText
ouelement.textContent
. Eles diferem de várias maneiras.innerText
tenta aproximar o que aconteceria se você selecionasse o que vê (html renderizado) e copiasse para a área de transferência, enquantotextContent
meio que apenas tira as tags html e fornece o que resta.innerText
não é mais usado apenas para o IE e é suportado em todos os principais navegadores . Claro que, ao contráriotextContent
, ele é compatível com navegadores IE antigos (desde que eles vieram com ele).Exemplo completo ( da resposta de Gabi ):
fonte
Isso funciona para mim compilado com base no que foi dito aqui com um padrão mais moderno. Isso funciona melhor para várias pesquisas.
fonte
Isso deve funcionar:
Experimente este violino: http://jsfiddle.net/7gnyc/2/
fonte
Isso deve resolver.
fonte
Experimente (versão curta da idéia de resposta de Gabi )
Mostrar snippet de código
fonte