日期:2014-05-16  浏览次数:20412 次

JavaScript table 问题
有个table表格 单击里面的单元格可以改变里面的内容 下面是完整代码 但是可不可以知道我改的单元格是哪个 (比如 你要更改的单元格是 x1 , y2)我的目的就是想存数据库中然后再读出来 可是我不知道改的是那个单元格 也就无法修改数据库 哪位大大帮下忙 提取一下那个类似于坐标的东西 大致就是这意思 谢谢啦

//f.html table界面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload = function() {
  var obj = document.getElementById('tbl').getElementsByTagName('td');
   
  for (var i = 0; i < obj.length; i ++) {
  obj[i].ondblclick = function () {
  var str = prompt('请输入');
  if (str.length >= 1) {
  this.innerHTML = str;
  this.style.backgroundColor = 'yellow';
  }
  }
  }
}
</script>
</head>

<body>
<table border="1" cellspacing="0" bordercolor="black" id="tbl">
<tr>
<td>&nbsp</td>
<td>x1</td>
<td>x2</td>
<td>x3</td><td>x4</td>
</tr>
  <tr>
<td>y1</td>
  <td>A</td>
  <td>B</td><td>&nbsp;</td><td>&nbsp;</td>
  </tr>
  <tr>
<td>y2</td>
  <td>C</td>
  <td>D</td><td>&nbsp;</td><td>&nbsp;</td>
  </tr>
  <tr>
<td>y3</td>
  <td>E</td>
  <td>F</td><td>&nbsp;</td><td>&nbsp;</td>
  </tr>
  <tr>
<td>y4</td>
  <td>G</td>
  <td>H</td><td>&nbsp;</td><td>&nbsp;</td>
  </tr>

</table>
</body>
</html>

//c.html 弹出框页面

<HTML>
<HEAD>
<TITLE> 修改页面 </TITLE>

<META http-equiv='content-Type' content='text/html;charset=utf-8'>

</HEAD>
<script language='javascript'>
function sure(){
var node=document.getElementsByTagName('input')[0];
window.returnValue=node.value.replace(/^\s+/g,'').replace(/\s+$/g,'');
if(window.returnValue.length>0)
window.close();
alert('不能为空');
}
function cancel(){
window.close();
}
function initC(){
var val=window.dialogArguments['value'];
document.getElementsByTagName('input')[0].value=val;
}
</script>
<BODY onload='initC()'>
<input type='text' />
<input type='button' value='确定' onclick='sure()'/>
<input type='button' value='取消' onclick='cancel()'/>
</BODY>

------解决方案--------------------
你现在要的就是取得单元格行列值的问题
在这现在的基础上加一段代码也可以实现效果,原理就是列遍历和行遍历。
但更为高效些的方法,我是建议在绑定的时候就获得行列值,然后存为单元格的自定义变量。
所以你获取元素的时候不要直接bytagname("td")来获取td集合,而是先通过bytagname"tr再通过cells,
这样就可以直接得到XY值,不需要额外的遍历。
JScript code

    var otrs = document.getElementById("table1").getElementsByTagName("tr");
    for (var i = 0; i < otrs.length; i++) {
        for (var j = 0; j < otrs[i].cells.length; j++) {
            otrs[i].cells[j].x = j;
            otrs[i].cells[j].y = i;
            otr