Javascript 如何使用jquery在div id中查找类?
当用户单击like按钮时,我试图捕获类“badge”中的数字。以下是我目前在JS中找到的包含元素的div id,但我很难找到该div中的.badge:Javascript 如何使用jquery在div id中查找类?,javascript,jquery,dom,Javascript,Jquery,Dom,当用户单击like按钮时,我试图捕获类“badge”中的数字。以下是我目前在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
//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>
//类似于注释JS
$('.liking')。单击(函数(e){
e、 预防默认值();
div=$(this).closest('div').attr('id');
控制台日志(div);
})
//喜欢的结束注释JS
名称
0
您不一定需要ID,您可以使用查找
方法,也可以使用同级
方法
$('.liking').click(function (e){
e.preventDefault();
var $badge = $(this).closest('div').find('.badge');
// var $badge = $(this).siblings('.badge');
console.log($badge.text());
})
您不一定需要ID,您可以使用
find
方法,也可以使用sides
方法
$('.liking').click(function (e){
e.preventDefault();
var $badge = $(this).closest('div').find('.badge');
// var $badge = $(this).siblings('.badge');
console.log($badge.text());
})
.badge
是否始终是.liking
链接的父元素
如果是这样,您可以简单地执行以下操作:
$('.liking').click(function (e){
e.preventDefault();
var $badge = $(this).prev();
console.log($badge.text());
})
签出是否
.badge
始终是链接的父元素。喜欢链接
如果是这样,您可以简单地执行以下操作:
$('.liking').click(function (e){
e.preventDefault();
var $badge = $(this).prev();
console.log($badge.text());
})
退房
但是在您的HTML中,badge
始终位于liking
之前,因此您可以执行以下操作:
badge = $(this).siblings('.badge');
但是在您的HTML中,badge
始终位于liking
之前,因此您可以执行以下操作:
badge = $(this).siblings('.badge');
请尝试以下代码:
var text = $(this).siblings('span.badge').text();
var number = parseInt(text, 10);
请尝试以下代码:
var text = $(this).siblings('span.badge').text();
var number = parseInt(text, 10);
试过这个吗
$('.liking').click(function (e){
e.preventDefault();
div = $(this).closest('div').find('.badge');
console.log(div);
})
这里是工作链接尝试过这个吗
$('.liking').click(function (e){
e.preventDefault();
div = $(this).closest('div').find('.badge');
console.log(div);
})
这里是工作链接请尝试此代码
$('.liking').click(function (e){
e.preventDefault()
var div1 = $(this).closest('div').find('.badge');
alert(div1.text());
})
试试这段代码
$('.liking').click(function (e){
e.preventDefault()
var div1 = $(this).closest('div').find('.badge');
alert(div1.text());
})
我以前犯过这个错误prev()
不起作用,因为它们之间有一个文本节点。我以前犯过这个错误prev()
不起作用,因为它们之间有一个文本节点。如果HTML总是在这个结构中,。badge
只是函数的前一个同级,可能是一个更简单的解决方案,如果HTML总是在这个结构中,.badge
只是函数的前一个兄弟函数,可能是一个更简单的解决方案