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

时间:2015-01-08 00:55:27

标签: javascript jquery html css

我有以下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。非常感谢帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

如果您打算使用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");    
});

EXAMPLE 1

注意:如果您正在寻找一个upvote计数系统,我会在页面加载时拉取该数字并在点击时添加1:

//pull current number
var currentCount = $(".upvote .rating").text();

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

EXAMPLE 2

更新

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

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

EXAMPLE 3