【发布时间】:2015-12-15 05:15:42
【问题描述】:
我有一个基于数据库记录创建的表。在 tbody 内部,我有 tr 创建每个表行。表格行有多个相同日期的时间段。如果选中复选框,我想更改时间块的背景颜色。我让我的复选框开始工作,我用警报和里面的一些文本进行了测试。现在我正在尝试更改背景颜色,但到目前为止我尝试过的这种情况下没有任何效果。这是我的代码:
<cfoutput query="qryTest" group="DateMeeting">
<tbody>
<tr>
<td>#DateMeeting#</td>
</tr>
<cfoutput>
<tr class="blockRow">
<td>#StartTime#</td>
<td>#EndTime#</td>
<td><input type="checkbox" name="block" id="block"></td>
</tr>
</cfoutput>
</tbody>
</cfoutput>
Java 脚本:
$('input[type=checkbox]').on('change', function() {
var div = $(this).closest('.blockRow');
$(this).is(":checked") ? div.addClass("red") : div.removeClass("red");
});
还有我的 CSS:
.red{
background-color:red;
}
这是我更新的工作代码。第一个问题是在我的代码的 html 结构中。其次,如果我使用 document.getElementById('') ,无论我点击哪一行,我都只会得到第一行更改的背景颜色。所以我不得不使用getElementByClassName。无论如何,我决定使用 JQuery addClass/removeClass。感谢大家对这个问题的帮助。
【问题讨论】:
-
你能发布你得到的错误
-
$('#blockRow').css("backgroundcolor","red")应该是驼峰式:$('#blockRow').css("backgroundColor","red") -
在您对 CSS 更改的 jQuery 调用中,“backgroundcolor”需要与 CSS 中的“background-color”完全相同。 Idk 如果那是问题的话
-
我没有收到任何错误,这是问题所在,我找不到问题所在。如果我使用警报,我的代码每次单击复选框时都会给我文本。
-
您有多个 ID 为
#blockRow的元素吗?在这种情况下,您应该使用 class
标签: javascript jquery html css