0

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

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)

});
4

2 回答 2

5

做这个:

var n = this.firstChild.data;

或这个:

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

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

n = parseInt(n, 10);
于 2012-11-19T22:05:09.810 回答
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
});
于 2012-11-19T22:06:13.617 回答