jQuery + Rails:变量选择器不起作用

时间:2013-05-05 20:13:05

标签: ruby-on-rails jquery

我试图在用户点击星号后记录特定路线的分数。

$('.ratings_stars').on('click', function() {
        var score=$(this).attr("data-score");
        var route_id=$(this).attr("data-route_id");
  });

它会记录分数,但它只为路线选择“1”或“0”或将其留空。

Scores

我尝试了以下内容:

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', '');

1 个答案:

答案 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}}的数量(在上面的示例中) ,父divdiv

在这种情况下,这一行

<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标记)。