2011-06-15 20 views
7

Z grupy elementów zakresu chcę uzyskać wartości pierwszego wystąpienia zakresu, który nie jest pusty.Wybierz pierwszy element zakresu, który nie jest pusty

mam ten kod 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> 

mam ten Jquery wcześniej, ale chcę, aby to działało tak, że „pierwszy okres, którego tekst nie jest pusta”:

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

z góry dzięki !

Odpowiedz

13

to będzie działać:

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

lub te:

$('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

to wydaje się tylko działać, jeśli istnieje więcej niż jeden przęsła, które nie są puste. jeśli istnieje tylko jedna rozpiętość, która nie jest pusta, to się nie powiedzie – yretuta

+0

@Ygam: Działa dobrze z jednym niepustym rozpiętością. Należy pamiętać, że puste oznacza naprawdę puste. Innymi słowy, nie ma białej przestrzeni. – user113716

+1

Niestandardowa funkcja filtru może być używana do wyrzucania elementów, które nie zawierają nic lub białych znaków: '$ ('span') .filtr (function() {return $ (this) .text(). Trim()}).() .text() ' – CoDEmanX

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

wydaje się działać tylko wtedy, gdy istnieje więcej niż jedna rozpiętość, która nie jest pusta. jeśli istnieje tylko jedna rozpiętość, która nie jest pusta, to się nie powiedzie – yretuta

+0

Powinno działać niezależnie od liczby elementów. Sprawdź http://jsfiddle.net/2B3PU/ –

0
var firstMapMultiLatitude; 
$('.map_multi_latitude').each(function (index, element) { 
    if ($(element).val() != '') { 
     firstMapMultiLatitude = $(element).val(); 
     alert($(element).val()); 
     return; 
    } 
}); 
Powiązane problemy