2009-07-27 13 views
0

SSIファイルを呼び出すページに表示される場合と表示されない場合がある要素の束を隠す、私のSSIファイルの1つにjavascriptイベントハンドラがあります。結果として、ハンドラは、隠すように要求している要素を見つけることができなくなるまでスムーズに進み、非表示にする要素があれば完了する前に停止します。だから、要素がページ上にあって、ハンドラをちょうど通過するかどうかにJavaScriptが掛からないようにするにはどうしたらよいですか?エレメントを隠すようにJavaScriptに要求するにはどうすればよいでしょうか?

多くのありがとうございます。
マイク

答えて

8

は、あなたが要素を取得している方法によって異なります。あなたは要素を選択することができますし、それがどんな操作を存在しない場合でもjQueryの、のようなものを使用している場合

/* handler begin code */ 
var el = document.getElementById('myElement'); 
if (el) { 
    //do work 
} 
/* handler end code */ 

その簡単に:あなたはJSライブラリを使用していないなら、あなたはこのような何かを行うことができます選択されたセットの上にあなただけ非表示にしたいIDごとにこの操作を行う例外昔ながらのJavaScript(なしライブラリ)で

//this will work even if myElement doesn't exist - no exceptions will be thrown 
$("#myElement").hide(); 
1

いくつかのコードは、このことについて適切にこれに答えるのはいいが、何だろう:

if (element) { 
    element.hide(); 
} 
+0

またはさらに簡潔に:要素&& element.hide(); – HBP

+0

To-may-To、To-mah-to。 ;) – deceze

+0

実際にjQuery要素を使用する場合は、事前に選択が試行されている限り、nullになることはありません。要素がない場合は空のjQuery配列になります –

0

をスローしません。

if(document.getElementById("myelementId")) document.getElementById("myelementId").style.display = "none"; 

あなたはそれを置くことができますループもあなたが好きなら:

var elementsToHide = ["tom","dick","harry"]; 

for(var i in elementsToHide) { 
    var element = document.getElementById(elementsToHide[i]); 
    if(element) element.style.display = "none"; 
} 
関連する問題