2012-01-15 14 views
4

jQueryでは、私は自分のウェブサイトのすべてのページに表示されるコードを書いています。特定のIDを持つ要素がjQueryのページに存在するかどうかをテストするにはどうすればよいですか?

ただし、私のウェブサイトのすべてのページに「someElement」というIDの要素があるわけではありません。残念ながら、このような要素がないページでは、jQueryコードは機能しません。

この問題を解決するには、ページの要素が実際に「someElement」のIDを持っているかどうかをテストし、必要に応じて上のコードスニペットを実行する必要があります。

このテストを実行するにはどうすればよいですか?このテストで問題を解決できますか?ありがとうございました。

+0

あなたが見たいかもしれません:http://stackoverflow.com/questions/31044/is存在するjqueryの編集機能:実際、この質問は基本的にはその質問と重複しています。そのようにマークする必要がありますか? – Jeff

答えて

8

$('#someElement').lengthは、要素が存在する場合は1、そうでない場合は0を返します。

3

jQueryオブジェクトの長さを確認します。

var element = $('#someElement'); 
if (element.length) { 
    var element_top = element.offset().top; 
} 
1

使用する場合statemtent:if ($('#someElement').length) { do something }

1

はこれを試してみてください。

if($('#someElement').length>0){ 
    var d = $('#someElement').offset().top; 
} 
1

それを解決するだけで別の方法:あなたが(それだけではnullを返します)、エラーを発生させることなくvar d = $('#someElement').offset()を実行することができ、たとえ要素が存在しなくても。だから、試してみてください。

var d = $('#someElement').offset(); 
if (d) { 
    d = d.top; 
} 
1

はそのためのjQueryを使用しないでください!要素がDOM内にない場合、結果はnullになるため、getElementByIdを使用してください。

if (document.getElementById("someElement")) { 

} 
0

あなたのセレクタによって返さjQueryのコレクションの.LENGTHプロパティを使用します、要素が存在するかどうかをテストすることは必ずしも必要ではないことを

if ($("#myDiv").length) { 

$("#myDiv").show(); 

} 

注意を。次のコードは、そうでない場合は、それが存在する場合は、要素を示し、(エラーなしで)何もしません。

$("#myDiv").show(); 
関連する問題