如何使用jQuery从子类中获取值

时间:2012-11-19 22:03:17

标签: javascript jquery css

我正在创建一个简单的五星投票系统,我正在尝试获取我的href元素的数值。 HTML效果很好,但我不确定如何获取click事件的数值。

HTML看起来像这样:

<div id="voting"> 
    <span class="rating_container"> 
        <span class="star_container">  
            <a href="#" class="star star_1" >1<span class="rating">Terrible</span></a>   
            <a href="#" class="star star_2" >2<span class="rating">Bad</span></a>
            <a href="#" class="star star_3" >3<span class="rating">OK</span></a>
            <a href="#" class="star star_4" >4<span class="rating">Good</span></a>   
            <a href="#" class="star star_5" >5<span class="rating">Great</span></a>   
        </span> 
    </span> 
</div> 

我的jQuery点击事件如下所示:

$('.star').click(function(e) {
    e.preventDefault();

   // How can I get the numeric value of the clicked star (e.g., 5,6,7 etc)

});

2 个答案:

答案 0 :(得分:5)

这样做:

var n = this.firstChild.data;

或者这个:

var n = this.className.split("_")[1];

如果您需要将字符串转换为数字,请添加以下内容:

n = parseInt(n, 10);

答案 1 :(得分:4)

我会使用data-tag

<div id="voting"> 
    <span class="rating_container"> 
        <span class="star_container">  
            <a href="#" data-val="1" class="star star_1" >1<span class="rating">Terrible</span></a>   
            <a href="#" data-val="2" class="star star_2" >2<span class="rating">Bad</span></a>
            <a href="#" data-val="3" class="star star_3" >3<span class="rating">OK</span></a>
            <a href="#" data-val="4" class="star star_4" >4<span class="rating">Good</span></a>   
            <a href="#" data-val="5" class="star star_5" >5<span class="rating">Great</span></a>   
        </span> 
    </span> 
</div> 

然后在我的点击处理程序中

$('.star').click(function(e) {
    e.preventDefault();
   $(this).data('val'); //should return you the number
});