如何使用jQuery获取后代span元素

How to get descendant span element with jQuery?

本文关键字:span 元素 后代 获取 何使用 jQuery      更新时间:2023-09-26

我有以下 HTML:

<a href="javascript:search_rate(this, 'key', 'upvote', 'url' );">
    <div>
        <span class="glyphicon glyphicon-thumbs-up"></span> <span class="rating">0</span>
    </div>
</a>

在函数search_rate中,我想使用我传递的 this 变量来获取带有 class="rating" 的元素,然后将其值从 0 更新为 1。我正在使用jQuery,我写了以下内容来尝试获取元素:

update_node = $(this).find('.rating');

但是,由于某种原因,update_node没有指向正确的 DOM 元素。只是为了澄清我是一个初学者,并且一直在努力使用jQuery来导航DOM。 非常感谢帮助,谢谢!

如果你

打算使用jQuery,你不需要通过href传递函数。您根本不需要使用a标签。只需定位单击div并更新其子.rating

.HTML

<div class="upvote">
    <span class="glyphicon glyphicon-thumbs-up"></span> 
    <span class="rating">0</span>
</div>

.JS

$(".upvote").click(function(){
   $(this).find(".rating").html("1");    
});

例 1

注意:如果你想做一个赞成票计数系统,我会在页面加载时拉出数字并在点击时加 1:

//pull current number
var currentCount = $(".upvote .rating").text();
$(".upvote").click(function(){ 
  $(this).find(".rating").html(parseInt(currentCount)+1); 
});

例 2

更新

要将其他值传递给点击事件,只需将它们添加为数据属性:

<div class="upvote" data-one="hello" data-two="goodbye">

例 3