2011-06-15 13 views
7

Da un gruppo di elementi di span, voglio ottenere i valori della prima occorrenza di uno span che non è vuoto.Selezionare il primo elemento di span che non è vuoto

ho questo HTML

<span class="map_multi_latitude"></span> 
<span class="map_multi_longitude"></span> 
<span class="map_multi_latitude">30.201998</span> 
<span class="map_multi_longitude">120.990876</span> 

Ho questo Jquery prima, ma voglio farlo funzionare in modo tale che "la prima calibrazione il cui testo non è vuota":

initialLat = $('span.map_multi_latitude:first').text(); 
initialLng = $('span.map_multi_longitude:first').text(); 

grazie in anticipo !

risposta

13

Ciò funzionerà:

$('span:not(:empty):first').text() 

o questi:

$('span:not(:empty):eq(0)').text() 
$('span:not(:empty)').eq(0).text() 
$('span:not(:empty)').slice(0,1).text() 
$('span:not(:empty)').first().text() 
+0

questo sembra funzionare solo se vi sono più di un campate non vuoti. se c'è solo una span che non è vuota, fallisce – yretuta

+0

@Ygam: funziona bene con una span non vuota. Siate consapevoli che vuoto vuol dire veramente vuoto. In altre parole, nessuno spazio bianco. – user113716

+1

Una funzione di filtro personalizzata può essere utilizzata per eliminare elementi che non contengono nulla o solo spazi: '$ ('span'). Filter (function() {return $ (this) .text(). Trim()}). First() .text() ' – CoDEmanX

2
initialLat = $('span.map_multi_latitude:not(:empty):first').text(); 
initialLng = $('span.map_multi_longitude:not(:empty):first').text(); 
+0

sembra funzionare solo se ci sono più di uno span che non sono vuoti. se c'è solo una span che non è vuota, fallisce – yretuta

+0

Dovrebbe funzionare indipendentemente dal numero di elementi. Controllalo http://jsfiddle.net/2B3PU/ –

0
var firstMapMultiLatitude; 
$('.map_multi_latitude').each(function (index, element) { 
    if ($(element).val() != '') { 
     firstMapMultiLatitude = $(element).val(); 
     alert($(element).val()); 
     return; 
    } 
}); 
Problemi correlati