我试图在用户点击星号后记录特定路线的分数。
$('.ratings_stars').on('click', function() {
var score=$(this).attr("data-score");
var route_id=$(this).attr("data-route_id");
});
它会记录分数,但它只为路线选择“1”或“0”或将其留空。
我尝试了以下内容:
var route_id=1; // displays "1" as to be expected
var route_id='#'; // displays "0"
var route_id=$(this).attr("data-route_id"); // no link to any route
var route_id=$(this).attr("route_id"); // no link to any route
任何人都可以看到我没看到的内容吗?
编辑:我在这里发布了整个代码jsfiddle
非常感谢。
解决方案: var route_id=$(this).parent().attr("id").replace('Route', '');
答案 0 :(得分:1)
根据评论和这个小提琴http://jsfiddle.net/45AEY/:
<h3 class="bar">Beginners</h3>
<div class="content">
<ul>
<li><a href="#/routes/1">Route 1</a>
<div id="Route1" class="rate_widget">
<div class="star_1 ratings_stars" data-score="1">1</div>
<div class="star_2 ratings_stars" data-score="2">2</div>
<div class="star_3 ratings_stars" data-score="3">33</div>
<div class="star_4 ratings_stars" data-score="4">44</div>
<div class="star_5 ratings_stars" data-score="5">55</div>
</div>
<div class="total_votes">vote data</div>
</li>
</ul>
</div>
由于没有data-route_id
属性,我相信您要抓住的route_id
是父Route
的{{1}}的数量(在上面的示例中) ,父div
为div
。
在这种情况下,这一行
<div id="Route1" class="rate_widget">
可以切换到这一行:
var route_id = $(this).attr("data-route_id");
var route_id = $(this).parent().attr('id').replace('Route','');
将拥有路线的ID。 (在上面的示例中,它将是route_id
)。
试一试:http://jsfiddle.net/2B9GM/
Ps。:在您的原始小提琴中,您没有将jQuery设置为库。确保将其设置在您的小提琴中,更重要的是,在HTML页面中导入(通过1
标记)。