[解決済み] IDが数字である場合のquerySelectorの使用について
2022-08-18 03:26:10
質問
HTML5の仕様では、このような数値のIDを使用することができると理解しています。
<div id="1"></div>
<div id="2"></div>
これらへのアクセスは
getElementById
でアクセスできますが
querySelector
. もし私が次のようにしようとすると、次のようになります。
SyntaxError: DOM Exception 12
がコンソールに表示されます。
document.querySelector("#1")
なぜ数字をIDにするとうまくいかないのかが気になるところです
querySelector
と表示されるのはなぜでしょうか? 複数のブラウザで試してみました。
どのように解決するのですか?
有効ですが、特別な処理が必要です。 ここから http://mathiasbynens.be/notes/css-escapes
<ブロッククオート先頭の数字
識別子の最初の文字が数字である場合、そのUnicodeコードポイントに基づいてエスケープする必要があります。例えば、1という文字のコードポイントはU+0031なので、" \000031" または "\31 ." とエスケープします。
基本的に、どんな数字もエスケープするには、その前に \3 を付けて、空白文字 ( ) を付ければいいのです。やったねUnicode!
つまり、あなたのコードは(CSSが先、JSが後)になってしまうのです。
#\31 {
background: hotpink;
}
document.getElementById('1');
document.querySelector('#\\31 ');
関連
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] なぜブラウザはCSSセレクタを右から左へマッチングさせるのですか?
-
[解決済み] 2つのクラスを持つ要素に適用するCSSセレクタ
-
[解決済み】JavaScript / HTML5での効果音について
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] Node.jsのES6クラスをrequireで作る