-3

这是我的脚本,但它不起作用:

var first = document.getElementById("sheet").rows[0];
var two = first.cells(4);
two.setAttribute('style','display:none');
4

2 回答 2

1

请注意,单元格不是一个函数或方法,它是一个返回可以通过索引访问的 HTML 集合的属性:

var two = first.cells[4];

而不是使用setAttribute,只需直接设置属性:

two.style.display = 'none';
于 2013-10-09T08:38:50.960 回答
1

我不知道你是否真的想设置属性或添加功能 onBlur - 我会回答这两个

如果你想设置一个ATTRIBUTE

那么您的方法实际上是正确的-考虑two是一个 HTMLObject

two.setAttribute("class","unchecked"); //this sets class .unchecked to the "two"

这会用新类替换所有现有类,如果您只使用 1 个类就可以了。

从历史上看,您可以合并自己的类,但是对于现代浏览器,有更方便的方法:two.classList.add("unchecked");添加到现有的类列表而不是替换它,但前提是该类尚不存在:-)

如果你想添加一个会触发onBlur的FUNCTION()

然后你必须使用一些东西来绑定 - 最简单的方法是在 HTMLObject 属性(属性)中添加一个函数 - 注意!HTMLObject 属性(属性)与您在 html 代码中看到的属性不同:

two.onblur=function(){  /*SomeJavaScriptCode*/ };

或者如果你已经有一个功能:

two.onblur = cekUndo;

  • 注意!没有 () 括号 - onblur 将在需要时运行该函数,您不希望该函数立即触发...
  • 我建议您也检查一个 .addEventListener 方法 - 它更可调整,您可以在一个事件上添加例如更多功能

注意:你可以这样做<td onblur="myFunction()">- 直接将它添加到 HTML,但我认为你不能像这样在运行时这样做,你必须绑定:) ...

编辑:cells关于你的第二个问题 - 正如 RobG 所说,你必须使用 [] 括号访问集合:

var two = first.cells[4];

还要检查您是否真的有该索引
的单元格(单元格的索引从 0 到 X => index 4 表示 5th )

于 2013-10-09T08:24:52.533 回答