2011-02-19 50 views
0


我有幾個HTML的結構是這樣的:訪問內標籤文字使用jQuery

<div id="some_id" class="bio"> 
    <h3><img src="some.jpg" alt="alt_text" /><br /> 
    <a name="Name"></a></h3> 
    <div class="bio_info"> 
    <h3 class="bio_name">NAME TEXT</h3> 
     <p>BIO TEXT</p> 
     <div class="add_bio">MORE BIO</div> 
    </div> 
    <p><span class="add_bio_toggle">more</span></p> 
</div> 

,我雖然循環他們,用「這個」變量訪問它們。什麼是正確的方式來訪問我已經大寫的文本(名稱文本,生物文本,更多的生物)?我一直在嘗試變種

var bio.name = $('.bio_info.bio_name', this).html(); 

無濟於事。我錯過了什麼?

[example code] 
    //get the national leadership, by column 
    $('#national_leadership .left_col .bio').each(function(){ 
     //create new object to add to nat_leadership array 
     var bio = new Object(); 
     bio.id = $(this).attr('id'); 
     bio.name = $('.bio_info', this).find('.bio_name').text(); 
     ... 

它發現id很好,但返回一個空字符串的名稱。

+0

爲furthur閱讀,,通過這個http://api.jquery.com/text/ – kobe 2011-02-19 04:44:41

回答

0

這應該工作

$('.bio_name').text(); 

如果你是通過循環您可以使用

$(this).text() 

,那麼請參閱... jQuery的發現()

http://api.jquery.com/find/

$('bio).find('.bio_name').text(); 
+0

,但不會是選擇頁面中的所有元素.bio_name? – danwoods 2011-02-19 04:45:46

+0

danwoods如果你循環你可以做$(this).text(); – kobe 2011-02-19 04:47:06

1

之後編輯OP的帖子更新:

例與each

$(".bio").each(function() 
{ 
    var bio_name = $(this).find(".bio_name").text() 
    var bio_text = $(this).find(".bio_name").next().text()); 
    var more_bio = $(this).find(".add_bio").text()); 
}); 
0

通過在bio_info DIV元素這將循環和提醒的內容,如果它是一個文本節點(你可能會想要做的比其他別的東西警報):

$(function() { 
    $(".bio_info").contents().filter(function() { 
     if(this.nodeType == 1) { 
      alert($(this).text()); 
     } 
    }); 
});