有没有更好的方法来创建动态HTML表而不使用任何javascript库,如Jquery YUI等
别担心,我们不需要找出此代码中的任何错误。它工作得很好。 我的老板过来对我说:“嘿,告诉我为动态HTML表(添加行、删除行、更新行)编写代码的最佳方式是什么?”<强>不需要添加任何CSS。只是JavaScript。没有jQuery库。< /强>我感到困惑的是,在项目的中间,他为什么要这样愚蠢的运动。我写下了下面的代码并邮寄给他,15分钟后我收到了他发来的邮件。 我希望像你这样的人能写出更好的代码。不管怎样,猴子干得不错。(附带一张猴子的照片。) 那是邮件。一行一行 我想回复他,但在此之前我想知道我的代码的质量。这真的很糟糕。。。!!!或者他只是在取笑我 我不认为那个代码真的很糟糕。如果可以的话,还是纠正我。代码运行得非常好。只需将其复制粘贴到HTML文件中有没有更好的方法来创建动态HTML表而不使用任何javascript库,如Jquery YUI等,javascript,html,Javascript,Html,别担心,我们不需要找出此代码中的任何错误。它工作得很好。 我的老板过来对我说:“嘿,告诉我为动态HTML表(添加行、删除行、更新行)编写代码的最佳方式是什么?”不需要添加任何CSS。只是JavaScript。没有jQuery库。< /强>我感到困惑的是,在项目的中间,他为什么要这样愚蠢的运动。我写下了下面的代码并邮寄给他,15分钟后我收到了他发来的邮件。 我希望像你这样的人能写出更好的代码。不管怎样,猴子干得不错。(附带一张猴子的照片。) 那是邮件。一行一行 我想回复他,但在此之前我想知道我的代
<html>
<head>
<title>
Crap work
</title>
<script type="text/javascript">
function add_row()
{
var table = document.getElementById('table');
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "text";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "text";
cell2.appendChild(element2);
var cell3 = row.insertCell(2);
cell3.innerHTML = ' <span onClick="edit(this)">Edit</span>/<span onClick="delete_row(this)">Delete</span>';
cell3.setAttribute("style", "display:none;");
var cell4 = row.insertCell(3);
cell4.innerHTML = '<span onClick="save(this)">Save</span>';
}
function save(e)
{
var elTableCells = e.parentNode.parentNode.getElementsByTagName("td");
elTableCells[0].innerHTML=elTableCells[0].firstChild.value;
elTableCells[1].innerHTML=elTableCells[1].firstChild.value;
elTableCells[2].setAttribute("style", "display:block;");
elTableCells[3].setAttribute("style", "display:none;");
}
function edit(e)
{
var elTableCells = e.parentNode.parentNode.getElementsByTagName("td");
elTableCells[0].innerHTML='<input type="text" value="'+elTableCells[0].innerHTML+'">';
elTableCells[1].innerHTML='<input type="text" value="'+elTableCells[1].innerHTML+'">';
elTableCells[2].setAttribute("style", "display:none;");
elTableCells[3].setAttribute("style", "display:block;");
}
function delete_row(e)
{
e.parentNode.parentNode.parentNode.removeChild(e.parentNode.parentNode);
}
</script>
</head>
<body >
<div id="display">
<table id='table'>
<tr id='id'>
<td>
Piemesons
</td>
<td>
23
</td>
<td >
<span onClick="edit(this)">Edit</span>/<span onClick="delete_row(this)">Delete</span>
</td>
<td style="display:none;">
<span onClick="save(this)">Save</span>
</td>
</tr>
</table>
<input type="button" value="Add new row" onClick="add_row();" />
</div>
</body>
垃圾工作
函数add_row()
{
var table=document.getElementById('table');
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
var cell1=行插入单元格(0);
var element1=document.createElement(“输入”);
element1.type=“text”;
单元格1.附加子元素(元素1);
var cell2=行插入单元格(1);
var element2=document.createElement(“输入”);
element2.type=“text”;
第2单元。附加子元素(元素2);
var cell3=行插入单元格(2);
cell3.innerHTML='Edit/Delete';
cell3.setAttribute(“样式”,“显示:无;”);
var cell4=行插入单元格(3);
cell4.innerHTML='Save';
}
功能保存(e)
{
var elTableCells=e.parentNode.parentNode.getElementsByTagName(“td”);
elTableCells[0]。innerHTML=elTableCells[0]。firstChild.value;
elTableCells[1]。innerHTML=elTableCells[1]。firstChild.value;
elTableCells[2].setAttribute(“样式”,“显示:块;”);
elTableCells[3].setAttribute(“样式”,“显示:无;”);
}
功能编辑(e)
{
var elTableCells=e.parentNode.parentNode.getElementsByTagName(“td”);
elTableCells[0]。innerHTML='';
elTableCells[1]。innerHTML='';
elTableCells[2].setAttribute(“样式”,“显示:无;”);
elTableCells[3].setAttribute(“样式”,“显示:块;”);
}
函数删除_行(e)
{
e、 parentNode.parentNode.parentNode.removeChild(e.parentNode.parentNode);
}
介子
23
编辑/删除
拯救
您可以将其拆分为单独的函数,这样既便于阅读,又便于重用。以下是我要解决的一些问题:
.onclick
),或者更好的是,addEventListener
(和attachEvent
)
上的code>可能不是您想要的不过,我会给他们和上面一样的清单,而不是给他们寄一张猴子的照片。你的老板不成熟。下次他随机给你发邮件询问代码时,给他回一封信,简要描述你提出的功能和实现,让他先考虑一下。不管怎样,我都不认为在老板叫我“猴子”的地方工作会开心。或者让我无缘无故地用愚蠢的需求编写愚蠢的小片段。