Tengo el botón 1 y algo de texto en mi HTML como el siguiente:
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>
Cuando el usuario hace clic en el botón, el contenido <p id='txt'>
se convertirá en el siguiente resultado esperado:
<p id='txt'>
// All the HTML element within the <p> will be disappear
I am working in ABC company.
</p>
¿Alguien puede ayudarme a escribir la función de JavaScript?
Gracias.
javascript
html
Juan
fuente
fuente
Respuestas:
[2017-07-25] ya que esta sigue siendo la respuesta aceptada, a pesar de ser una solución muy hacky, estoy incorporando el código de Gabi , dejando el mío como un mal ejemplo.
fuente
Puedes usar esto:
Dependiendo de lo que necesite, puede usar cualquiera
element.innerText
oelement.textContent
. Se diferencian de muchas maneras.innerText
intenta aproximar lo que sucedería si selecciona lo que ve (renderizado html) y lo copia al portapapeles, mientrastextContent
simplemente elimina las etiquetas html y le da lo que queda.innerText
También tiene compatibilidad con los antiguos navegadores IE (vinieron de allí).fuente
text
método de alto rendimiento ya que se hace mucho en un bucle. jQuery no tuvo el rendimiento suficiente, pero esto fue muy rápido. Trabajó en IE8 +, cromo, ff. Perfecto.el.textContent
seráundefined
yel.innerText
podría ser""
. Pero"" || undefined
esundefined
. Usarel.innerText || el.textContent || ''
puede ser mejor.el.textContent || el.innerText || ""
.var text = element.textContent;
; a menos que por alguna razón impía todavía tengas que soportar IE8 o menos .el.innerText
es más o menos lo mismo queel.textContent.replace(/\W+/g, ' ')
. Ellos no son los mismos.Si puedes usar jquery, entonces es simple
fuente
filter
propiedad sé que pura JS es técnicamente más eficiente cuando se trata de velocidad, pero eso no importa ya en la mayor parte .. normal.document.querySelector("#txt").innerText;
personas incluyen toda la biblioteca jQuery con demasiada frecuencia cuando su única necesidad es un par de líneas de código. Es una mala practica.Esta respuesta funcionará para obtener solo el texto de cualquier elemento HTML.
Este primer parámetro "nodo" es el elemento para obtener el texto. El segundo parámetro es opcional y, si es verdadero, agregará un espacio entre el texto dentro de los elementos si no hubiera espacio allí.
fuente
Dependiendo de lo que necesite, puede usar cualquiera
element.innerText
oelement.textContent
. Se diferencian de muchas maneras.innerText
intenta aproximar lo que sucedería si selecciona lo que ve (renderizado html) y lo copia al portapapeles, mientrastextContent
simplemente elimina las etiquetas html y le da lo que queda.innerText
ya no se usa solo para IE , y es compatible con todos los principales navegadores . Por supuesto, a diferencia detextContent
, tiene compatibilidad con los antiguos navegadores IE (ya que se les ocurrió).Ejemplo completo (de la respuesta de Gabi ):
fuente
Esto funciona para mí compilado en base a lo que se dijo aquí con un estándar más moderno. Esto funciona mejor para múltiples búsquedas.
fuente
Eso debería funcionar:
Pruebe este violín: http://jsfiddle.net/7gnyc/2/
fuente
Deberias hacer eso.
fuente
Probar (versión corta de la idea de respuesta de Gabi )
Mostrar fragmento de código
fuente