Javascript 传递ID为的HTML元素
我的问题是关于结合HTML5功能ContentEditable和localStorage的代码 这是我的两个JS函数,一个用于在表格单元格中存储用户编辑,另一个用于获取值并将其传递给表格单元格Javascript 传递ID为的HTML元素,javascript,html,contenteditable,Javascript,Html,Contenteditable,我的问题是关于结合HTML5功能ContentEditable和localStorage的代码 这是我的两个JS函数,一个用于在表格单元格中存储用户编辑,另一个用于获取值并将其传递给表格单元格 <script type="text/javascript"> function storeUserEdit(id) { var pre_value = document.getElementById(id).innerHTML; localStorage.setItem("
<script type="text/javascript">
function storeUserEdit(id) {
var pre_value = document.getElementById(id).innerHTML;
localStorage.setItem("userEdit",pre_value);
}
function applyUserEdit() {
if (localStorage.getItem("userEdit")){
var new_value = localStorage.getItem("userEdit");
}
document.getElementById('prjSch_row1_col1').innerHTML = localStorage.getItem("userEdit");
}
</script>
函数storeUserEdit(id){
var pre_value=document.getElementById(id).innerHTML;
setItem(“userEdit”,pre_值);
}
函数applyUserEdit(){
if(localStorage.getItem(“userEdit”)){
var new_value=localStorage.getItem(“userEdit”);
}
document.getElementById('prjSch_row1_col1')。innerHTML=localStorage.getItem(“userEdit”);
}
这两个功能嵌入到正文内容中:
applyUserEdit()
我想把它用于HTML页面中的许多表单元格,以及如何用id替换prjSch_row1_col1并将其传递给函数getUserEdit()
非常感谢 你是想做类似的事情吗。因为你在问题中提到的还不足以让我思考答案。在页面加载或 请让我知道足够的细节 2013年8月16日> 非常抱歉耽搁了!请查找我在Firefox中测试的以下代码。这是你想要的行为吗。请不要用小提琴测试。我不知道为什么,它在那里不起作用 `
函数storeUserEdit(id){
var pre_value=document.getElementById(id).innerHTML;
setItem(“userEdit”,pre_值);
setItem('userEditControl',id);
}
函数applyUserEdit(id){
var新值=“”;
if(localStorage.getItem(“userEdit”)){
new_value=localStorage.getItem(“userEdit”);
}
if(localStorage.getItem('userEditControl')==id){
document.getElementById(id).innerHTML=localStorage.getItem(“userEdit”);
}
//这只是为了检查代码是否正常工作
document.getElementById('log')。value=document.getElementById('log')。value+'\n'+localStorage.getItem(“userEdit”);
}
用户名:
价值
密码:
价值
`
如果您有任何问题,请告诉我…谢谢您的回复。我想要实现的与你在链接中提到的不同。我想应用编辑后的值,我想在填写每个字段(表格单元格)后立即运行applyuseredit()。我想替换document.getElementById('prjSch_row1_col1')。innerHTML=localStorage.getItem(“userEdit”);使用document.getElementById(id).innerHTML=localStorage.getItem(“userEdit”);但它不起作用。有什么想法吗?嗨,非常感谢。它接近我想要的。一个小问题是,当我完成编辑时,我需要将页面的副本保存为html文件。当我打开保存的页面时,输入的值不会显示。。。你能帮忙吗?
<td id="prjSch_row1_col1" contenteditable="true" onkeyup="storeUserEdit(this.id)" >
</td>
<script>applyUserEdit()</script>
<head>
<script type="text/javascript">
function storeUserEdit(id) {
var pre_value = document.getElementById(id).innerHTML;
localStorage.setItem("userEdit",pre_value);
localStorage.setItem('userEditControl', id);
}
function applyUserEdit(id) {
var new_value = '';
if (localStorage.getItem("userEdit")){
new_value = localStorage.getItem("userEdit");
}
if(localStorage.getItem('userEditControl') === id){
document.getElementById(id).innerHTML = localStorage.getItem("userEdit");
}
//this is just to check whether the code is working
document.getElementById('log').value = document.getElementById('log').value + '\n' + localStorage.getItem("userEdit");
}
</script>
</head>
<body>
<table border="1">
<tr>
<td>User Name:</td>
<td id="uname" contenteditable="true" onkeyup="storeUserEdit(this.id)" onblur="applyUserEdit(this.id)">value...</td>
</tr>
<tr>
<td>Password:</td>
<td id="pword" contenteditable="true" onkeyup="storeUserEdit(this.id)" onblur="applyUserEdit(this.id)">value...</td>
</tr>
</table>
<textarea multiline="true" id="log"></textarea>
</body>