如何用js实现html单元格内的值被编辑而改变其背景色?如何用js实现html单元格内的值被编辑而改变其背景色?
建议你用前端框架去写,用原生JS太麻烦且效率低,推荐用bootstrap、vue,网上一大堆,如果侧重样式就用boostrap,里面有自带的js脚本
我不知道所谓的**被编辑**是什么意思。
如果是js使用了innerText方法修改内容,然后背景色修改,做一个这个元素是被修改过的标记,不知道是不是这样。
假定是我想的那样。可以用两种方法。
一:在修改内容后面加一句修改背景颜色的代码。
二:获取标签元素内容,判断它的值是否修改过,若修改过,改变背景色;否则返回false或者不写
<table>
<tbody>
<tr>
<td>这是单元格</td>
</tr>
</tbody>
</table>
$(function(){
$("tbody tr").css("background-color","red");
var numTd = $("tbody td");
//给这些单元格注册鼠标点击的事件
numTd.click(function() {
//找到当前鼠标点击的td,this对应的就是响应了click的那个td
var tdObj = $(this);
$(tdObj).css('background-color','green');
if (tdObj.children("input").length > 0) {
//当前td中input,不执行click处理
return false;
}
var text = tdObj.html();
//清空td中的内容
tdObj.html("");
//创建一个文本框
var inputObj = $("<input type='text'>").css("border-width","0")
.css("font-size","16px").width('100px')
.css("background-color",tdObj.css("background-color"))
.val(text).appendTo(tdObj);
//是文本框插入之后就被选中
inputObj.trigger("focus").trigger("select");
inputObj.click(function() {
return false;
});
//处理文本框上回车和esc按键的操作
inputObj.keyup(function(event){
//获取当前按下键盘的键值
var keycode = event.which;
//处理回车的情况
if (keycode == 13) {
//获取当当前文本框中的内容
var inputtext = $(this).val();
//将td的内容修改成文本框中的内容
tdObj.html(inputtext);
}
//处理esc的情况
if (keycode == 27) {
//将td中的内容还原成text
tdObj.html(text);
}
});
});
});