Mam elementu w DOM:Dlaczego kod JS "var a = document.querySelector (" a [data-a = 1] ");" powodować błąd?
<a href="#" data-a="1">Link</a>
chcę dostać ten element poprzez jego dane atrybutów niestandardowych HTML5 data-a
. Więc piszę kodów JS:
var a = document.querySelector('a[data-a=1]');
ale ten kod nie działa i pojawia się błąd w konsoli przeglądarki. (Testowałem Chrome i Firefox.)
Kod JS var a = document.querySelector('a[data-a=a]');
nie powoduje błędu. Myślę więc, że problem polega na tym, że JS API HTML5 document.querySelector
nie obsługuje wyszukiwania wartości liczbowej w niestandardowym atrybucie danych HTML5.
Czy jest to problem związany z błędem implementacji przeglądarki lub z problemem specyfikacji HTML5 związanej z document.querySelector
?
Potem testowane na http://validator.w3.org/ kody poniżej:
<!DOCTYPE html>
<meta charset="utf-8">
<title>An HTML Document</title>
<a href="#" data-a="1">Link</a>
Są one zatwierdzone. Ponieważ te kody HTML5 są sprawdzane. Powinniśmy użyć interfejsu API JS HTML5 document.querySelector
, aby wyszukać ten element zakotwiczenia za pomocą jego niestandardowego atrybutu danych. Ale faktem jest, że dostaję błąd.
Czy specyfikacja HTML5 do JS API HTML5 document.querySelector
mówi, że ta metoda nie może wyszukać niestandardowego atrybutu danych HTML5 z wartością liczbową? (An źródło specyfikacji HTML5 jest poszukiwany.)
kiedy za pomocą [selektorów atrybutów CSS] (http: //www.blo oberry.com/indexdot/css/syntax/selectors/attribute.htm), wartość powinna być zawijana w cudzysłów, np. 'a [dane-a =" 1 "]'. –
'querySelectorAll()' nie jest "interfejsem API JS HTML5". Nie ma to absolutnie nic wspólnego z HTML5. – BoltClock