我需要能够使用循环内的变量,循环外的变量在脚本标签之间的 javascript 中使用。最好不要使用脚本标签和文件,而是使用脚本标签开始...
我有这个不起作用:
<% @line_items.each do |li| %>
<button type="button" onclick="mockupColor<%= "#{li.id}" %>()"></button>
<div id="tshirt-div-<%= "#{li.id}" %>">
#code
<script>
function mockupColor<%= li.id %>(){
document.getElementById("tshirt-div-<%= "#{li.id}" %>").style.backgroundColor = '#000000';
}, false);
</script>
<% end %>
错误:mockupColor1 未定义
这确实有效:
<% @line_items.each do |li| %>
<button type="button" onclick="mockupColor"></button>
<div id="tshirt-div">
#code
<% end %>
<script>
function mockupColor(){
document.getElementById("tshirt-div").style.backgroundColor = '#000000';
}, false);
</script>
问题是我需要能够调用 li.id,因为一旦我发现这个函数问题,颜色将根据 li.id 改变。
有没有办法以某种方式匹配li.id循环外脚本标记中的循环?
我不明白为什么这不起作用,因为我之前肯定在循环中使用过 javascript 并且效果很好。我在应用程序的 fields_for 循环中使用了类似的代码,并以这种方式使用函数效果很好......无论出于何种原因,这次不是。还是我缺少某些东西并且做得不对?
HTML:(内循环)
<button type="button" class="btn btn-info" data-toggle="modal" data-color="796" data-target="#exampleModal2-796" id="#exampleModal2-796" onclick="mockupColor()">
<script>
function mockupColor() {
document.getElementById("tshirt-div-796").style.backgroundColor = '#000000';
};
</script>
慕森王
jeck猫
相关分类