2011-06-15 45 views
7

從一組跨度元素中,我想獲得非空的第一個跨度值。選擇第一個非空的跨度元素

我有這樣的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> 

我有這個jQuery之前,但我想,使其工作,使得「第一跨度其文本不爲空」:提前

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

感謝!

回答

13

這將工作:

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

或者這些:

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

這似乎只有在有一個以上的跨度它不是空的工作。如果只有一個非空的跨度,則會失敗 – yretuta 2011-06-15 03:48:58

+0

@Ygam:對於一個非空跨度可正常工作。請注意,空的意味着真空。換句話說,沒有空白。 – user113716 2011-06-17 00:08:19

+1

自定義過濾器函數可用於丟棄僅包含空格或空白的元素:'$('span')。filter(function(){return $(this).text()。trim()})。first ().text()' – CoDEmanX 2015-06-16 08:37:14

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

這似乎只適用於多個不爲空的跨度。如果只有一個非空的跨度,這將失敗 – yretuta 2011-06-15 03:48:22

+0

無論元素的數量如何,它都應該工作。檢查它http://jsfiddle.net/2B3PU/ – 2011-06-15 04:19:57

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