【问题标题】:JQuery get the class within a parentJQuery获取父类中的类
【发布时间】:2012-01-05 03:06:14
【问题描述】:

我确实花了几个小时用 JQuery 试图从一个类中提取一段文本,在下面的代码中你可以看到当点击 reply 按钮时,JQuery 会寻找一个名为 的类>name 以提取一段文本,在本例中为 bob green

我总是研究这些类型的东西,但由于这些代码都不起作用,我被卡住了,在下面的 JQuery 代码中你可以看到我尝试了不同的方法来提取文本。

如果有人能帮我解决这个问题,我将不胜感激。

<div class='replyContainer'>
    <div class='image'></div>
    <span>
        <div class='close' title='Close'></div>
        <b><font class='name'>bob green</font></b>
        test message
    </span>
    <div class='bubble-triangle-border'></div>
    <div class='bubble-triangle'></div>
    <div class='info'> 
        <div class='reply'></div>
    </div>
</div>


$(".replyContainer .reply").live('click',function(){    
    var replyName = "@" + $(this).parent().parent(".name").text();
});


$(".replyContainer .reply").live('click',function(){    
    var replyName = "@" + $(this).parent().parent().closest(".name").text();
});

$(".replyContainer .reply").live('click',function(){    
    var replyName = "@" + $(this).parent().parent("span font.name").text();
});

【问题讨论】:

    标签: jquery html class parent


    【解决方案1】:
     $(".replyContainer .reply").live("click", function() { 
          var replyName = "@" + $(this).closest(".replyContainer").find(".name").text()
     })
    

    其他一些事情:

    1. jQuery.live() 被认为已弃用(请参阅:http://api.jquery.com/live/),您应该改用 .delegate() 或 .on()
    2. 你完全不应该使用&lt;font&gt;标签,而是使用CSS!
    3. closest() 往上看 DOM 父母和他们的父母,find() 往下看孩子!

    【讨论】:

    • +1 表示超高速,弃用和最佳实践注意事项 ;)
    • 这就像一个魅力,感谢您的建议,我很感激。
    【解决方案2】:
    $(".replyContainer .reply").live('click',function(){    
    var replyName = "@" + $(this).closest('div.replyContainer').find('font.name').text();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-18
      • 2014-04-21
      • 1970-01-01
      • 2021-01-18
      • 2012-10-20
      • 2020-12-06
      • 2012-01-06
      • 2021-12-26
      相关资源
      最近更新 更多