La tarea es encontrar todos los elementos que tienen valores en el atributo "href", que cumplen 2 condiciones al mismo tiempo:
Entonces necesito algo como
const targetHrefs = document.querySelectorAll('[name="list"] ~ ul > li > a[href*="://"][href^="http://internal.com"]');
donde la segunda condición debe ser con el operador NO
¿Es posible usar la única regla Selector de CSS?
Solo ponlo en un :not ?
const targetHrefs = document.querySelectorAll('a[href*="://"]:not([href^="http://internal.com"])'); console.log(targetHrefs.length); console.log(targetHrefs[0]); <a href="foo"></a> <a href="https://example.com/"></a> <a href="http://internal.com/"></a>