2

ここでは、属性とオブジェクトの属性に値を追加する 2 つの関数がsetImage1あります。setImage2srcaltdieImg

2番目の解決策setImage2は、最初の解決策よりもはるかに簡単で短いことがわかりました。

したがって、私の質問は、setAttribute メソッドを使用する最初のソリューションを使用するポイントがあるかどうかです。これら 2 つの関数の結果は同じです。

2 番目の質問は、いつ setAttribute メソッドを使用する必要があるかということです。

function setImage1(dieImg) {
  var dieValue = Math.floor(1 + Math.random() * 6);

  dieImg.setAttribute("src", "img/die" + dieValue + ".png");
  dieImg.setAttribute("alt", "die image with " + dieValue + " spot(s)");
} // end function setImage1


function setImage2(dieImg) {
  var dieValue = Math.floor(1 + Math.random() * 6);

  dieImg.src = "img/die" + dieValue + ".png"
  dieImg.alt = "die image with " + dieValue + " spot(s)");
} // end function setImage2
4

3 に答える 3

3

ノードのプロパティにできないアトリビュートを設定したい場合に便利です (その名前のプロパティが既に存在するため)。

例えば ​​:

var element = document.createElement('img');
element.setAttribute('parentNode', 'a');

これにより、

<img parentnode="a"> 

その間

var element = document.createElement('img');
element['parentNode'] = 'a';

作るだけ

<img>

( を使用して表示できますouterHTML)

今日、data-*属性があるため、関連性は低くなります。

于 2013-09-12T07:53:53.530 に答える