我正在创建一个简单的五星投票系统,我正在尝试获取我的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)
});
答案 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
});