2012-02-23 83 views
0

我必須遍歷這些eachLocation Div其中幾個持有各種地方和他們的地址。選擇以下範圍jquery

$('.eachLocation').each(function(index) { 
     var address=$(this).siblings().find('span.LocationAddress').text(); 
    }); 

我沒有得到任何值的地址?難道我做錯了什麼?

<div class="eachLocation" > 
      <div class="LocationCounter">1.</div> 
      <div class="LocationInfo"> 
       <span class="LocationName">Kay Kay Center</span><br/> 
       <span class="LocationAddress"> 
        1019 fairfax road, Bellevue, NE 68005 
       </span><br/> 
      </div> 
     </div> 

回答

2

你應該這樣做這樣

$('.eachLocation').each(function(index) { 
    var address=$('span.LocationAddress', this).html(); 
}); 

這將肯定工作...

+1

+1 - 如果其他人丟失它,Senad使用上下文參數進行過濾。 '$('selector',context)'。知道這是一件非常有用的事情! – mrtsherman 2012-02-23 20:21:40

+0

我可以使用text()而不是html()嗎?有什麼區別嗎? – 2012-02-23 20:39:48

+1

這是你可以尋找答案的地方。 http://api.jquery.com/text/基本上text()將只返回所有子元素組合的文本,而html()將返回html – 2012-02-23 20:42:31

2

locationAddress不是eachLocation的兄弟。所以,不要使用siblings

$('.eachLocation').each(function(index) {  
    var address=$(this).find('span.LocationAddress').text(); 
}); 
1

關閉我的頭頂:你有沒有嘗試過使用.html()而不是.text()source此外,我想你的意思.children.siblings

1

如果HTML,不會再改就可以直接目標地址: -

如果跨度包含普通文本

var address = $('.eachLocation div span.LocationAddress').text(); 

如果跨度包含HTML

var address = $('.eachLocation div span.LocationAddress').html(); 

在其他的方式,

$('.eachLocation span.LocationAddress').each(function() { 
    var address = $(this).html(); 
});