Rails Ajax:引用一个在循环中被命名为迭代的div

时间:2017-02-21 21:23:10

标签: javascript html ruby-on-rails ajax partial-views

我有一个视图,我在其中循环一系列模型。在每次迭代中,我渲染一个tabs的bootstrap nav,然后是一个我在该迭代中唯一命名的div。该div填充了通过rails ajax指定的各种部分,具体取决于当前单击的选项卡。因此,总的来说,您可以将视图成像为一系列选项卡式导航,每个选项卡下都有一个数据表。其代码如下:

<h3>Season Stats</h3>
    <div class="row">
        <div class="col">
            <% @player.season_stats_season_numbers.each do |season_number_object| %>
                <% season_number = season_number_object.season_number %>
                <%= render partial: "show_season_stats", locals: {season_number_object: season_number_object, season_number: season_number} %>
                <div id=<%="season_stats_div#{season_number}"%>><br></div>
            <% end %>
        </div>      
    </div>

“_show_season_stats”部分呈现bootstrap tabbed-nav,其下方的行创建一个由季节编号ID的div。

我无法在我的ajax代码中引用正确的div。例如,如果我想显示防御性统计数据,我有一个文件show_defensive_stats.js.erb,其中包含以下行:

$("#season_stats_div#{@season_number}").html("<%= escape_javascript(render partial: 'defensive_stats_layout', locals: { defensive_season_stats: @defensive_season_stats } ) %>"); 

当我单击导航中的相应选项卡时,没有任何反应。我知道其余的代码工作正常,因为如果我将循环中的div重命名为“season_stats_div”,那么在我的ajax代码中引用它,即; $(“#season_stats_div”....我得到了我想要的确切行为。

如何正确引用js.erb文件中的命名div?

谢谢!

0 个答案:

没有答案