Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery在div id中查找类?_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 如何使用jquery在div id中查找类?

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按钮时,我试图捕获类“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


<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>
//类似于注释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
只是
函数的前一个兄弟函数,可能是一个更简单的解决方案