素子111は有効なHTML id属性ですか、またはdocument.querySelector()およびdocument.querySelectorAll()が正しく構文エラーをスローしていますか?
const div = document.createElement("div");
div.id = 111;
document.body.appendChild(div);
try {
console.log(document.getElementById("111"));
} catch(e) {
console.error(e);
}
参照戻りdocument.getElementById()
しかし
const div = document.createElement("div");
div.id = 111;
document.body.appendChild(div);
try {
console.log(document.querySelector("#111"));
} catch(e) {
console.error(e);
/*
Chromium:
DOMException: Failed to execute 'querySelector' on 'Document':
'#111' is not a valid selector.
Firefox
SyntaxError: '#111' is not a valid selector
*/
}
try {
console.log(document.querySelectorAll("#111"));
} catch(e) {
console.error(e);
/*
Chromium:
DOMException: Failed to execute 'querySelector' on 'Document':
'#111' is not a valid selector.
Firefox
SyntaxError: '#111' is not a valid selector
*/
}
を考える:
をIDとNAMEトークンは文字([A-ZA-Z])で始まる必要があり、文字の任意の数が続いてもよい、数字([0-9]) 、ハイフン( " - ")、 アンダースコア( "_")、コロン( ":")、およびピリオド( "。"
7.5.2 Element identifiers: the id and class attributes
属性
ID =名[CS]この属性は、要素に名前を割り当てる定義します。この名前は で、ドキュメント内で一意である必要があります。
本明細書は、クラス、ID、およびスロット任意の要素に 属性の要件を定義するが、それは が適合するかしないそれらを使用するかどうかについて何ら主張を行いません。
id属性は、その要素のunique identifier (ID)を指定します。
IDが使用できる形式には他に制限はありません。 特に、IDは、数字で始まり、単に数字で構成することができる下線で を開始し、ちょうど句読点から成り、等
はSYNTAX_ERR例外をスローした場合、指定されたグループのセレクタが 無効です。
セレクタの指定されたグループが 無効の場合SYNTAX_ERR例外をスローします。
は"111"
は、有効なHTMLのid属性やdocument.querySelector()
とdocument.querySelectorAll()
が正しく構文エラーを投げていますか?
[HTMLのid属性の有効な値は何ですか?](https://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in- html) – Thilo
CSSはHTML5より厳密です。リンクされた複製を参照してください。 – Thilo
IDとNAMEトークンは、文字([A-Za-z])で始まり、数字、数字([0-9])、ハイフン( - )、アンダースコア(_ )、コロン( ":")、およびピリオド( "。")が含まれます。あなたがルールを見ているように、数値ではなくアルファベットで始めるように変更してください。 – Thennarasan