【发布时间】:2019-11-16 22:21:18
【问题描述】:
我有一个 HTML 表,当单击按钮时我会向其中添加行。那部分工作正常:
function ic_add_supplier_line(){
var table = document.getElementById("ic_current_pricing");
var count = $('#ic_current_pricing tr').length;
var row = table.insertRow(count);
for (i = 0; i < 8; i++) {
var cell = row.insertCell(i);
var cell_id = "ic_q_" + String(i) +"_" + String(count)
cell.innerHTML = "<input id=" + cell_id + " style='width:100%;' type='text' ondblclick='select_supplier(this.id)' >"
}
}
双击单元格时,我希望单元格背景颜色发生变化。
function select_supplier(elm_id) {
var cur_row = elm_id.slice(-1)
var table = document.getElementById("ic_current_pricing");
var rows = table.getElementsByTagName("tr") ;
for (var i=0; i<rows.length; i++) {
if (i== cur_row){
for (j =0; j<8; j++){
rows[i].cells[j].className="on"
}
}else{
for (j =0; j<8; j++){
rows[i].cells[j].className=""
}
}
}
}
和 CSS
.on{
background-color:green ;
}
只有边框/轮廓会改变颜色。细胞保持白色。 感谢任何帮助。提前致谢。
【问题讨论】:
-
这里混合了 Vanillia JS 和 jQuery,您可以轻松使用 jQuery 并减少此处所需的执行时间。您可以添加完整的 html 代码和示例吗? “on”类名称是否应用于您单击的 tr 行?
-
@GrandIQ。我对所有这一切都很陌生,因此代码的混合。但是,我相信应该改变单元格颜色的函数是 Vanilla JS。在这一点上,我并不真正担心执行速度,只是想让功能正常运行。我试图将“on”类应用于行和单元格。结果是一样的。仅单元格轮廓的颜色会发生变化。
-
所以您手动将“on”类添加到随机行单元格但边框颜色正在改变?请检查您的检查工具,看看是否存在限制您的自定义“on”类的类名冲突。如果您看到多个元素改变了“tr”行单元格的颜色,那么您可能存在样式冲突。
-
@GrandIQ。会做。但我确定没有类名冲突。
-
您介意加入聊天室以便我们尝试解决这个问题吗?
标签: javascript html-table background-color tablecell