Estoy intentando lo siguiente, pero "World" falla: en la consola se resuelve como false después de mi u operador.

   var liz = document.querySelectorAll(".__item--selected")[0];

      if(liz.innerHTML.indexOf("SkyFall" || "World") !== -1) {
        custom= liz.title;
        console.log("found " + custom);
      } else  { ....... }

Parte 2:

Me gustaría recorrer una lista de li sy click(); la li que tiene la innerText coincidente de mi variable custom.

0
doc holiday 24 feb. 2020 a las 05:47

2 respuestas

La mejor respuesta

Uso de expresiones regulares a través del match método:

var liz = document.querySelectorAll(".__item--selected")[0];

      if( liz.innerHTML.match(/SkyFall|World/) ) {
        custom= liz.title;
        console.log("found " + custom);
      } else  { ....... }

Nota: también, tenga en cuenta las notas de @Scott Marcus y si realmente desea examinar el HTML o el contenido de texto del elemento.


P.S. Maximum Overdrive fue una gran película! : P

2
KostasX 24 feb. 2020 a las 02:57

Se debe completar una condición if. Tienes que escribir ambas condiciones de prueba en su totalidad.

Además, document.querySelectorAll(".__item--selected")[0] no tiene sentido. Si sabe que desea la primera coincidencia, use .querySelector().

Además, si está probando texto sin formato y no HTML, no use .innerHTML, use .textContent.

var liz = document.querySelector(".__item--selected");

if(liz.textContent.indexOf("SkyFall") !== -1 || liz.textContent.indexOf("World") !== -1) {
    custom= liz.title;
    console.log("found " + custom);
} else  { ....... }
2
Scott Marcus 24 feb. 2020 a las 02:51