¿Cómo puedo, con una simple cadena jquery en la consola, eliminar/cambiar el estilo de todos los elementos que contienen las cadenas HTML internas "años" y "meses" en la pantalla de inicio de YouTube?
El objetivo es eliminar o resaltar todos los contenedores de video antiguos para que no tenga que mirarlos y pueda concentrarme en las cosas nuevas, ya que YouTube recicla demasiado su contenido.
Lo que he hecho hasta ahora:
Paso 1: Primero cargue jquery (funciona)
var jq = document.createElement('script'); jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"; document.getElementsByTagName('head')[0].appendChild(jq); // ... give time for script to load, then type (or see below for non wait option) jQuery.noConflict();Paso 2 (falla): si uso ": contiene", elimina todo y si uso ": tiene" no pasa nada. ¿Cómo hago para que no elimine todo, sino solo los elementos específicos del video?
$( "div:has('months')" ).css( "display", "none" );Esta es la documentación de jQuery que estaba siguiendo: https://api.jquery.com/category/selectors/content-filter-selector/
Si tiene alguna buena idea sobre cómo limpiar esta pantalla de inicio, agregue una sugerencia. Con el complemento de Chrome "Búsqueda múltiple y salto múltiple", puede desplazarse hasta la parte inferior del feed y resaltar todas las cadenas, pero sería mucho mejor eliminarlas todas.
Quizás algo como esto (sin necesidad de jQuery): probado en Chrome ...
document.querySelectorAll('.ytd-video-meta-block').forEach(meta => { const metaText = meta.innerText; if(metaText.indexOf("month") !== -1 || metaText.indexOf("year") !== -1){ const old = meta.closest('.ytd-rich-grid-row'); if(old){ old.remove() }} })