4

以下のコードで私が持っていることを達成するためのより良い/よりクリーンな方法があるかどうか知りたいです。

var updateJob = function(){
    document.getElementById("jobDescription").style.display = "block";
    document.getElementById("updateButton").style.display = "block";
    document.getElementById("equipmentList").style.display = "block";
    document.getElementById("jobDesc").style.display = "block";
    document.getElementById("equipRan").style.display = "block";
}

可能であればすべての要素を再表示する1行だけにしたいと思いますが、うまくいきdocument.getElementById("jobDescription" + "updateButton" + etc...).style.display = "block";ません。私はJavaScriptが初めてです。

4

5 に答える 5

9

必要なすべての要素にクラスを指定し、 で選択しますgetElementsByClassName(..)

(そしておそらく、jQuery を使用して同じことをはるかに少ない労力で行うことができます)

于 2012-12-31T01:50:58.427 に答える
5

ループを使用できます:

var elements = ['jobDescription', 'updateButton', 'equipmentList', 'jobDesc', 'equipRan'];

for(i = 0; i < elements.length; i++) {
   document.getElementById(elements[i]).style.display = "block";
}
于 2012-12-31T01:50:08.103 に答える
0

これを試して:

var toggle = ["jobDescription","updateButton","equipmentList","jobDesc","equipRan"],
    l = toggle.length, i;
for( i=0; i<l; i++) document.getElementById(toggle[i]).style.display = "block";

または、これらすべての要素を 1 つのコンテナーに入れ、それを切り替えるだけです。

于 2012-12-31T01:50:38.113 に答える
0

これは一行でできることではありません。ただし、jQuery を使用すると、要素にクラスを与えて、気の利いた jQuery メソッドでそのスタイルを操作することができます。しかし、純粋な JS に関しては、文字列 (ID) の配列を使用し、それを反復して、それらの ID で要素のスタイルを設定できます。

[ 'jobDescription', 'updateButton', 'equipmentList',
  'jobDesc', 'equipRan' ].forEach(function( iden ) {

    document.getElementById( iden ).style.display = "block";

});
于 2012-12-31T01:51:51.627 に答える