1

当用户单击“赞”按钮时,我正在尝试捕获“徽章”类中的数字。到目前为止,这是我在我的 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>
4

6 回答 6

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

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

badge = $(this).siblings('.badge');
于 2013-05-07T12:03:19.623 回答
1

试试这个代码:

var text = $(this).siblings('span.badge').text();
var number = parseInt(text, 10);
于 2013-05-07T12:03:24.583 回答
1

试过这个?

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

})

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

于 2013-05-07T12:03:44.210 回答
1

不一定需要ID,可以用findmethod,也可以用siblingsmethod。

$('.liking').click(function (e){
  e.preventDefault();
  var $badge = $(this).closest('div').find('.badge');      
  // var $badge = $(this).siblings('.badge');
  console.log($badge.text());
})
于 2013-05-07T12:03:11.620 回答
1

试试这个代码

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

})

看演示

于 2013-05-07T12:05:26.917 回答
0

.badge永远是.liking链接的父元素吗?

如果是这样,您可以简单地执行以下操作:

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

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

于 2013-05-07T12:03:13.233 回答