我对jQuery没有多少经验,所以我不确定我与此有多接近。我的Rails应用程序中有一个表,我想要score.test_type值== true的行。 (当它== true时,我将它显示为单词"练习"如果这很重要)我的表ID是分数,我有一个带有背景颜色的CSS类.score_table_color。在我的下面的代码中,我根本没有引用score.test_type,我不确定是一个问题。这是我到目前为止的jQuery代码
$(function(){
$("#scores tr").keyup(function() {
var textValue = $(this).val();
if(textValue == false){
// add css class or any manipulation to your dom.
$("#scores tr").addClass('score_table_color');
}
});
});
我将这个粘贴在users.js文件中,因为该表格显示在用户的页面上。 (用户has_many分数)
更新
我已将代码更新为:
$(function(){
$("#scores tr").ready(function() {
var textValue = $(this).val();
if(textValue == false){
// add css class or any manipulation to your dom.
$("#scores tr").addClass("score_table_color");
}
});
});
这使整个表格变蓝。我的代码的问题是我似乎在说表中的某些内容是错误的,不一定是score.test_type这是单元格编码的方式:
<td>
<% if score.test_type == true %>
<%= 'Practice' %>
<% else %>
<%= 'Actual' %>
<% end %>
</td>
答案 0 :(得分:0)
我最后只使用Ruby而不是jQuery来解决这个问题。 (我仍然想弄清楚如何使jQuery正常工作。以下是我如何使它工作:
下面是显示循环开始的代码,它循环遍历用户的分数以创建表。 Al我真的把它放在一个if / else语句中,说“如果score.test_type == false,那么应用css class score_table_color,否则就单独留下。然后我的第一个是score.test_type,这是一个布尔值如果这是假的,那么行背景颜色会根据我的CSS而改变。
<% @scores.order('taken_date').where.not(:name => 'ACT').each do |score| %>
<% if score.test_type == false %>
<tr class="score_table_color">
<% else %>
<tr>
<% end %>
<td>
<% if score.test_type == true %>
<%= 'Practice' %>
<% else %>
<%= 'Actual' %>
<% end %>
</td>
答案 1 :(得分:0)
是的,上面的答案肯定会奏效。但我想在我创建的职位委员会中发布我如何解决自己的问题,所以我的答案将比问题所需的任务更详细,但我的结论将严格涉及使用简单的if..else
陈述来回答这个问题。
<强>首先强>
我定义了一个css来处理我的亮点,这样我的样式表管道中就有以下内容:
/* For Row Highlighted */
.highlighted {
background-color: #CFF3FF;
}
注意:您可以根据需要使用任何颜色。
<强>其次强>
通过运行rails g migration addHighlightedToJobs
,我使用布尔数据类型向已存在的表添加了一列。在我自己的情况下, 突出显示 是我的ColumnName, 作业 是我的TableName,因此我的迁移看起来像这样:
class AddHighlightedToJobs < ActiveRecord::Migration
def change
add_column :jobs, :highlighted, :boolean
end
end
然后,我确实运行rake db:migrate
来迁移我的新迁移。
注意:如果您按照我的说明生成迁移,则TableName必须是 Plural 。
<强>第三强>
我在我的表单中添加了一个check_box,只是在我的列名称上选中或取消标记为 true 和 false
<%= f.check_box :highlighted %>
<强>最后强>
要回答问题,因为我的表单上有check_box,如果选中,则会在我的数据库表上发布 true ,并且如果未选中,则会在我的数据库表上发布 false 。
因此,要在我的rails应用程序中更改我的表格行颜色,我使用了一个简单的if..else
语句来调用我的样式表中的突出显示,以便我有:
<% @jobs.each do |job| %>
<% if job.highlighted == true %>
<section class="container">
<div class="row jobs highlighted">
<div class="col-md-4" style="font-size: 20px;"><strong><%= job.company_name %></strong></div>
<div class="col-md-4" style="font-size: 20px;"><%= link_to(job.title, job) %></div>
<div class="col-md-4 text-right" style="font-size: 20px; float: left;"><%= job.created_at.strftime('%d %B %y') %></div>
</div>
</section>
<% else %>
<section class="container">
<div class="row jobs">
<div class="col-md-4" style="font-size: 20px;"><strong><%= job.company_name %></strong></div>
<div class="col-md-4" style="font-size: 20px;"><%= link_to(job.title, job) %></div>
<div class="col-md-4 text-right" style="font-size: 20px; float: left;"><%= job.created_at.strftime('%d %B %y') %></div>
</div>
</section>
<% end %>
<% end %>
我真的相信我的结论是干的 - 这违反了Rails范式。我们可以重写它,使它成为:
<% @jobs.each do |job| %>
<section class="container">
<% if job.highlighted == true %>
<div class="row jobs highlighted">
<% else %>
<div class="row jobs">
<% end %>
<div class="col-md-4" style="font-size: 20px;"><strong><%= job.company_name %></strong></div>
<div class="col-md-4" style="font-size: 20px;"><%= link_to(job.title, job) %></div>
<div class="col-md-4 text-right" style="font-size: 20px; float: left;"><%= job.created_at.strftime('%d %B %y') %></div>
</div>
</div>
</section>
<% end %>