2011-09-23 12 views
12

Eventuali duplicati:
Finding whether the element exists in whole html pageisset in jQuery?

vorrei fare quarantina:

HTML:

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

JavaScrip t:

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

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

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

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

LIVE:

http://jsfiddle.net/8KYxe/

Come posso fare questo?

+0

Che cosa dovrebbe essere impostato su queste campate? –

+2

Che cosa significa "isset"? Lo 'span' ha qualche contenuto? Esiste? –

risposta

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'); 
} 

Questo è quello che ti serve :)

+3

Se id non viene trovato, verrà generato l'errore – Minimihi

+1

'if (!! $ ('# one')) {alert ('yes'); } '- e così via.Questo è !! doppio operatore non in JS. –

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

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


Oppure, come estensione di jQuery:

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

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

@Tomalak - Grazie per la modifica :) –

+0

Sei il benvenuto. ;) – Tomalak

-2

si può semplicemente utilizzare questo:

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

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

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

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

Siamo spiacenti, il mio errore, non è così lavoro.

+3

'$()' restituisce sempre un oggetto jQuery, che valuta come 'true'. –

+0

Non funziona, jQuery restituisce sempre oggetto jQuery. – Usman

+1

@FelixKling: E ​​'meglio che copiare questo commento ... Forse ci sarà una terza persona che risponde in questo modo ...;) –

17

È possibile utilizzare length:

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

Non c'è bisogno di avere il> 0, poiché 0 viene comunque valutato come falso. –

+0

Indica se esiste un elemento con tale ID. Tuttavia, se vuoi scoprire se esiste un valore per questo elemento, puoi fare 'if ($ (" # uno "). Val()) {...}' –

+2

@Richard: Giusto, ma '> 0' è più espressivo e quindi più facile da leggere. Potrebbe non essere immediatamente chiaro a tutti che '0' restituisce' false'. –

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

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

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