2011-09-23 8 views
12

可能性の重複:
Finding whether the element exists in whole html pagejQueryのisset?

私は代を作りたいと思います:

HTML

<span id="one">one</span> 
<span id="two">two</span> 
<span id="three">three</span> 

JavaScripトン

LIVE
if (isset($("#one"))){ 
    alert('yes'); 
} 

if (isset($("#two"))){ 
    alert('yes'); 
} 

if (isset($("#three"))){ 
    alert('yes'); 
} 

if (!isset($("#four"))){ 
    alert('no'); 
} 

http://jsfiddle.net/8KYxe/

どのように私はそれを行うことができますか?

+0

どうすべきこれらのスパンに設定されていますか? –

+2

'isset'とは何を意味していますか? 'span'にはいくつかのコンテンツがありますか?それが存在します? –

答えて

22
if (($("#one").length > 0)){ 
    alert('yes'); 
} 

if (($("#two").length > 0)){ 
    alert('yes'); 
} 

if (($("#three").length > 0)){ 
    alert('yes'); 
} 

if (($("#four")).length == 0){ 
    alert('no'); 
} 

これは、あなたが:)

+3

idが見つからなければエラー – Minimihi

+1

'if(!! $( '#one')){alert( 'yes'); } ' - など。これは! JSでは演算子を二倍にしません。 –

8
function isset(element) { 
    return element.length > 0; 
} 

http://jsfiddle.net/8KYxe/1/


それとも、jQueryの拡張として:

$.fn.exists = function() { return this.length > 0; }; 

// later ... 
if ($("#id").exists()) { 
    // do something 
} 
+0

@Tomalak - 編集ありがとうございました:) –

+0

よろしくお願いします。 ;) – Tomalak

-2

あなたは、単にこの使用することができます。

if ($("#one")){ 
    alert('yes'); 
} 

if ($("#two")){ 
    alert('yes'); 
} 

if ($("#three")){ 
    alert('yes'); 
} 

if ($("#four")){ 
    alert('no'); 
} 

申し訳ありませんが、私のミスを、それはしていません作業。

+3

'$()'は常に 'true'と評価されるjQueryオブジェクトを返します。 –

+0

動作しません、jQueryは常にjQueryオブジェクトを返します。 – Usman

+1

@FelixKling:あなたはこのコメントをコピーする方がいいでしょう...このように答える第三者がいるかもしれません...;) –

17

あなたはlengthを使用することができます。

if($("#one").length) { // 0 == false; >0 == true 
    alert('yes'); 
} 
+3

0を0にする必要はありませんが、とにかくfalseと評価されます。 –

+0

このIDを持つelemntが存在するかどうかを示します。しかし、この要素の値が存在するかどうかを知りたければ 'if($("#one ")。val()){...}' –

+2

@リチャード:そうだが、 '> 0'はより表現力があり、読みやすい。 「0」が「偽」と評価されることは誰にとってもすぐには分かりません。 –

-2
function el(id) { 
    return document.getElementById(id); 
} 

if (el('one') || el('two') || el('three')) { 
    alert('yes'); 

} else if (el('four')) { 
    alert('no'); 
}