querySelectorAll () Targeting rel = "me" -Attribut AND href-Attribut mit "12345" [Duplikat]

Nov 18 2020

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

1 Quentin Nov 18 2020 at 00:38

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"/>