Estoy tratando de extraer un atributo de imagen de un HTML que se extrae como una cadena.
Intentar usar https://stackoverflow.com/a/40311944/2981404 devuelve:
TypeError: Cannot read properties of undefined (reading 'slice')
Mi código es el siguiente:
const html[0] = '<img src="/img/image-example.png" class="image" title="What Im looking for..." alt="This is an example image">' const startFromTitle = html[0].slice( html[0].search('title') ) const title = startFromTitle.slice(5, startFromTitle.search(' ') - 1) console.log(title) // expected "What Im looking for..."Me encantaría usar jQuery, pero en este proyecto no puedo.
Debe declarar html como const primero y luego asignar la cadena html a html[0].
Y luego puede eliminar title=" de la cadena ( withoutTitle ) y luego buscar '"' para encontrar el final del atributo.
const html = []; html[0] = '<img src="/img/image-example.png" class="image" title="What Im looking for..." alt="This is an example image">'; const startFromTitle = html[0].slice( html[0].search('title') ); const withoutTitle = startFromTitle.slice( 7 ); const title = withoutTitle.slice(0, withoutTitle.search('"')); console.log(title);Puede lograr esto creando un elemento div temporal en DOM :
const htmlStr = '<img src="/img/image-example.png" class="image" title="What Im looking for..." alt="This is an example image">'; var tmpDiv = document.createElement('div'); tmpDiv.innerHTML = htmlStr; console.log(tmpDiv.querySelector('.image').getAttribute('title'));