如何使用jquery在div id中找到一个类?

时间:2013-05-07 11:59:54

标签: javascript jquery dom

当用户点击“赞”按钮时,我正在尝试捕获班级“徽章”中的号码。到目前为止,我在我的JS中找到了包含元素的div id,但是我在找到这个div中的.badge时遇到了麻烦:

//Like annotation JS
  $('.liking').click(function (e){
  e.preventDefault();
  div = $(this).closest('div').attr('id');
  console.log(div);

})
//End of liking annotation JS


<div id = 'div1'>
<% @annotations.each do |annotation| %>
    <p><strong>Name</strong>
    <p class = 'lead' style = 'font-size: 14px; line-height: 23px;'>
        <%= annotation.annotation %>
    </p>
    <p>
        <small>
            <span class = 'badge' style = 'font-size: 12px;'>0</span> &nbsp;
            <a href = "#" class = 'liking'>
                Like
            </a>
        </small>
    </p>
    <hr class="featurette-divider" style = 'margin:15px;'>
<% end %> <!-- End of verse annotations -->
</div>

6 个答案:

答案 0 :(得分:1)

您不一定需要ID,您可以使用find方法,也可以使用siblings方法。

$('.liking').click(function (e){
  e.preventDefault();
  var $badge = $(this).closest('div').find('.badge');      
  // var $badge = $(this).siblings('.badge');
  console.log($badge.text());
})

答案 1 :(得分:1)

badge = $(this).closest('div').find('.badge');

但是在您的HTML中,badge总是在liking之前,所以您可以这样做:

badge = $(this).siblings('.badge');

答案 2 :(得分:1)

试试这段代码:

var text = $(this).siblings('span.badge').text();
var number = parseInt(text, 10);

答案 3 :(得分:1)

试过这个?

$('.liking').click(function (e){
  e.preventDefault();
  div = $(this).closest('div').find('.badge');
  console.log(div);

})

这是工作链接http://jsfiddle.net/ASN7c/

答案 4 :(得分:1)

试用此代码

$('.liking').click(function (e){
e.preventDefault()
var div1 =  $(this).closest('div').find('.badge'); 
alert(div1.text());

})

See Demo

答案 5 :(得分:0)

.badge始终是.liking链接的父元素吗?

如果是这样,你可以这样做:

 $('.liking').click(function (e){
  e.preventDefault();
  var $badge = $(this).prev();
  console.log($badge.text());
})

查看http://jsfiddle.net/2c9xz/