;ボディ>
<スクリプト> CFC85B7B701A0677EC0 900000000000001';
関数 bySelector(id) {
return document.querySelector( '#' id);
}
function byId(id) {
return document.getElementById(id);
alert( str));
alert(byId(str));
2 つの関数bySelector と byId はそれぞれ querySelector を渡し、getElementById は要素を取得します。
ページ上に ID「02E503E2A1C011CFC85B7B701A0677EC0900000000000001」の要素があります。
結果: querySelector をサポートするすべてのブラウザーは、bySelector では取得できませんが (エラーが報告されます)、getElementById では取得できます。
id 文字列が長すぎるため、querySelector が取得できないのではないかと疑い始めました。本当の理由は、querySelector が CSS 仕様に従って実装されているためです。つまり、CSS 識別子を数字で始めることはできません。
W3 が書きました
CSS では、識別子 (要素名、クラス、セレクターの ID を含む) には、文字 [a-zA-Z0-9] と ISO 10646 文字 U 00A0 以降のみを含めることができます。識別子には、ハイフン (-) とアンダースコア (_) を含めることができます。数字、2 つのハイフン、またはハイフンの後に数字を続けることはできません (次の項目を参照)。たとえば、識別子「B&W?」は「B&W?」または「B26 W3F」と記述される場合があります。