JQuery получить класс в родительском - PullRequest
2 голосов
/ 05 января 2012

Я буквально потратил часы на то, чтобы JQuery пытался извлечь фрагмент текста из класса, в приведенном ниже коде вы можете видеть, что при нажатии кнопки reply JQuery ищет класс с именем имя для извлечения фрагмента текста, который в данном случае имеет вид боб грин .

Я всегда один, чтобы исследовать подобные вещи, но так как ни один из этого кода не работает, яя застрял, в коде 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();
});

Ответы [ 2 ]

5 голосов
/ 05 января 2012
 $(".replyContainer .reply").live("click", function() { 
      var replyName = "@" + $(this).closest(".replyContainer").find(".name").text()
 })

Несколько других вещей:

  1. jQuery.live () считается устаревшим (см .: http://api.jquery.com/live/),, вместо него следует использовать .delegate() или. on().
  2. Вы не должны использовать тег <font>, а использовать CSS!
  3. closest() идет вверх по родителям DOM и их родителям, а find() идет вниз и смотрит на детей!
1 голос
/ 05 января 2012
$(".replyContainer .reply").live('click',function(){    
var replyName = "@" + $(this).closest('div.replyContainer').find('font.name').text();
});
...