所以我有这段html
<td class="role-span"><span class="label"><% user.role %></span></td>
我正在尝试为表的每个单元格获取user.role值,如此
$(document).ready(function() {
$('.role-span').map(function() {
alert($(this).text());
})
});
如果它是硬编码的话我可以获得范围文本值,但是如果它是<% %>
则它不再起作用。
对此有何看法?
由于
答案 0 :(得分:1)
<% %>
只会执行ruby代码但会打印结果
使用<%= %>
打印结果。
详情在这里:https://stackoverflow.com/a/7996827/2549588
而role-span
位于td
上,所以如果你想获得所有跨度的文本,你应该这样做:
$(document).ready(function() {
$('.role-span').map(function() {
alert($(this).find('span.label').text());
});
});
或许您应该使用each
而不是map
,因为您只想做一个循环而不是获取数组。
答案 1 :(得分:1)
正如上面提到的@donald你需要替换
<td class="role-span"><span class="label"><% user.role %></span></td>
与
<td class="role-span"><span class="label"><%= user.role %></span></td>
作为
<% %>
只评估其中的表达式,而
<%= %>
评估并打印表达式返回的结果。