3
var a = document.createElement('div');

a.id = "myDiv";

var a = document.createElement('div').id = "myDiv";

最初のものは機能し、2番目のものは機能しないという違いは何ですか?

4

7 に答える 7

9

要素の を設定しても、要素は返さidれません。実際に返されるため、div 自体の代わりにvarが設定されます。"myDiv"a"myDiv"

于 2012-06-12T15:29:50.063 に答える
2

createElement からの「戻り値」が ID の設定に使用されるため、2 番目の方法は機能しません。これは割り当てであり連鎖ではないため、新しい要素への参照を「a」に戻さないため、失敗します。

于 2012-06-12T15:30:42.590 に答える
0

要素を作成しているので、2番目は機能しませんが、すぐに操作を実行します。代わりに、a変数は文字列「myDiv」に設定されます。

于 2012-06-12T15:30:14.400 に答える
0

foo = 'bar'ステートメントが実際に値を返すため、これは'bar'です。

a = document.createElement('div'); //this sets `a` to DOM Node

a = document.createElement('div').id = 'myDiv'; //this sets `a` to 'myDiv'
//it's the same as
document.createElement('div').id = 'myDiv';
a = 'myDiv';

これは絶対にしないでください

ID と変数の両方を 1 行で設定したい場合は、a括弧を使用できます。

(a = document.createElement('div')).id = 'myDiv';

これa = document.createElement('div')は、新しく作成された DOM ノードを返すためです。

于 2012-06-12T15:30:25.027 に答える
0

本当に短い方法が必要な場合は、次のように記述できます。

(window.a=document.createElement('div')).id="myDiv";

フィドル: http://jsfiddle.net/F23cD/

于 2012-06-12T15:34:03.117 に答える
0

最初のステートメントでは、タイプ "div" の作成された要素を変数 "a" に入れ、"a" の要素プロパティ "id" を "myDiv" に設定します。次に、「a」が要素になりました。

2 番目のステートメントでは、次のことを行います。

  1. タイプ「div」の要素を作成します: document.createElement('div')
  2. 要素プロパティ「id」を「myDiv」に設定し、
  3. また、「a」を「myDiv」に設定します

次に、「a」は要素ではなく「myDiv」になりました。

于 2012-06-12T15:46:00.233 に答える