-2

HTMLページ内に次のようなdomオブジェクトがあります。

<textarea id="owctl7fzk">​foo</textarea>

getElementByIdIDを引用せずにアクセスしようとすると、 が返されますnull

window.document.getElementById(owctl7fzk)

しかし、ID を一重引用符または二重引用符で囲むと、オブジェクトが選択されます。

window.document.getElementById('owctl7fzk')
window.document.getElementById("owctl7fzk")

この場合、なぜ引用が重要なのですか?一般的に、省略できるのはいつで、省略できないのはいつですか?

編集上記のコードでは、id は 16 進数です。以前は id として引用符なしの 10 進数を使用していましたが、問題はありませんでした。それはなぜですか?

4

4 に答える 4

3

getElementById(owctl7fzk)variableidの値と等しい属性を持つ要素を選択します:owctl7fzk

var owctl7fzk = "the_id";
var element = document.getElementById(owctl7fzk);

owctl7fzk"owctl7fzk"前者は変数名であり、後者は文字列であるため、絶対に と同じではありません。

これが JavaScript の仕組みです。HTML で引用符を省略できるからといって、JavaScript でも同じことができるわけではありません。

于 2013-03-29T02:10:16.660 に答える
2

これは、ID が引用符内にある場合、ID 属性を識別するために使用される文字列であり、それ以外の場合は変数として参照されるためです。を実行している場合window.document.getElementById(owctl7fzk)、javascript は という名前の変数を検索していますowctl7fzk。あなたが使用した場合var owctl7fzk = 'owctl7fzk'、それは動作します

于 2013-03-29T02:10:08.480 に答える
0

JavaScript では、ほとんどの言語と同様に、パーサーは引用符で囲まれた値を「文字列」として、引用符で囲まれていない値を識別子として理解します (これは単純化しすぎており、実際にはパーサーではなくlexerです)。

質問に固有の要素の id は文字列であるため、ソースでは文字列として表す必要があります。変数 (選択した識別子によってコードで表される) を使用して、この文字列または要素自体を保持できます。

var my_id = "owctl7fzk";
var elem = document.getElementById(my_id);
alert( my_id + " is the same as " + elem.id );
于 2013-03-29T02:16:13.987 に答える
0

文字列パラメーターを getElementById メソッドに渡すため、引用符で囲む必要があります。文字列は引用符で囲む必要があります。

于 2013-03-29T02:11:53.683 に答える