querySelectorAll () Targeting rel = "me" -Attribut AND href-Attribut mit "12345" [Duplikat]
Ich habe hier eine ganz bestimmte Situation, die ich sonst nirgendwo finden kann.
Ich muss auf ein <link>Element verweisen , das das rel="me"Attribut UND ein href="https://www.example.com/profile/12345"Attribut enthält, das ENTHÄLT 12345.
<link rel="me" href="https://www.example.com/profile/12345"/>
Ich habe es versucht, document.querySelectorAll()aber ich weiß nicht, wie ich es formatieren soll, damit der ANDOperator funktioniert.
if (document.querySelectorAll('[rel="me"], a[href*=123456]')[0])
Irgendwelche Ideen, wie das geht?
Antworten
In einem CSS-Selektor verwendet "AND" überhaupt keinen Kombinator.
Wenn Sie einen Typ- (oder Universal-) Selektor haben, muss dieser zuerst gehen.
Die Typauswahl zur Auswahl von <link>Elementen ist linknicht a.
link[rel="me"][href*="12345"]
Wenn Sie die erste Übereinstimmung wünschen, verwenden Sie querySelector()anstelle vonquerySelectorAll()[0]
const el = document.querySelector('link[rel="me"][href*="12345"]');
console.log(el);
<link rel="me" href="https://www.example.com/profile/12345"/>