当用户点击“赞”按钮时,我正在尝试捕获班级“徽章”中的号码。到目前为止,我在我的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>
<a href = "#" class = 'liking'>
Like
</a>
</small>
</p>
<hr class="featurette-divider" style = 'margin:15px;'>
<% end %> <!-- End of verse annotations -->
</div>
答案 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);
})
答案 4 :(得分:1)
试用此代码
$('.liking').click(function (e){
e.preventDefault()
var div1 = $(this).closest('div').find('.badge');
alert(div1.text());
})
答案 5 :(得分:0)
.badge
始终是.liking
链接的父元素吗?
如果是这样,你可以这样做:
$('.liking').click(function (e){
e.preventDefault();
var $badge = $(this).prev();
console.log($badge.text());
})