使用jQuery访问标记中的文本

使用jQuery访问标记中的文本,jquery,css-selectors,Jquery,Css Selectors,我有几个html结构,如下所示: <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


我有几个html结构,如下所示:

<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> 
无济于事。我错过了什么

[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,但返回一个空字符串作为名称。

应该可以

$('.bio_name').text();  
如果您正在循环,您可以使用

$(this).text()
然后请参见……jquery find()


OP的后期更新后编辑:

每个的示例:

$(".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());
});

这将循环遍历bio_info div中的元素,如果是文本节点,则向内容发出警报(您可能希望执行警报以外的其他操作):


为了进一步阅读,请浏览此页,但这不会选择页面中的所有.bio_name元素吗?danwoods如果您正在浏览,则可以执行$(this).text();我知道我可以通过在选择器中硬编码id来访问文本,但我猜是“这个”让我。。。请参阅上面的编辑和我正在尝试的代码示例。
$('bio).find('.bio_name').text();
$(".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());
});
$(function() {
    $(".bio_info").contents().filter(function() {
        if(this.nodeType == 1) {
            alert($(this).text());
        }
    });
});