我正在尝试将<TR>
标记内的所有<TABLE>
标记放入数组中,并尝试将其引用为 arrayname [1],arrayname [2] 。然后,我期待使用<TR>
idArr[1].setAttribute("title", "myClass");
代码设置唯一的 标题 属性
这是我编写的代码,但不起作用。任何人都可以指导我的错误!!
<html>
<head>
<script type="text/javascript" >
var idArr = [];
var formm=document.getElementById("form1");
var trs = formm.getElementsByTagName("tr");
alert(trs.length);
for(var i=0;i<trs.length;i++)
{
idArr.push(trs[i].id);
alert(idArr.innerText);
}
idArr[1].setAttribute("title", "myClass");
</script>
</head>
<body>
<form id="form1">
<table border="1">
<tr>
<td>One</td>
<td>Two</td>
</tr>
<tr>
<td>ABC</td>
<td>EFG</td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:2)
我需要在javascript中动态引用每个TR元素并设置title属性。
获取tr
元素并循环遍历它们的代码很好,但您需要移动它(更多信息如下)。根本不需要阵列,这就是你遇到麻烦的地方。
你还没有说过你需要在标题中添加什么,而是直接这样做:
for(var i=0;i<trs.length;i++)
{
trs[i].title = "The title goes here";
}
或
for(var i=0;i<trs.length;i++)
{
trs[i].setAttribute("title", "The title goes here");
}
(title
是HTMLElement
个实例上的反射属性,这就是为什么有两种方法可以做到这一点。)
另请注意,作为userSomeNumberHere points out,您的代码会在其下方的元素存在之前运行。您需要将代码移动到其操作的元素下面。
答案 1 :(得分:1)
一些注意事项:
<html>
<head>
<title>My Page</title>
</head>
<body>
<form id="form1">
<table border="1">
<tr>
<td>One</td>
<td>Two</td>
</tr>
<tr>
<td>ABC</td>
<td>EFG</td>
</tr>
</table>
</form>
<!-- Now your script will not run until the elements above are loaded-->
<script type="text/javascript" >
var formm=document.getElementById("form1");
var trs = formm.getElementsByTagName("tr");
for(var i = 0, len = trs.length; i < len; i++) {
trs[i].setAttribute("title", "myClass");
}
</script>
</body>
</html>
所以我摆脱了额外的数组代码,我将脚本移到了页面的底部,这样它才能运行,直到它上面的DOM加载完毕。
答案 2 :(得分:0)
与您帖子中的评论一样,您的代码中存在严重错误。查看评论(// ...)
<script type="text/javascript" >
var idArr = []; //should rename to elemArr or somethink like this
var formm=document.getElementById("form1");
var trs = formm.getElementsByTagName("tr");
alert(trs.length);
for(var i=0;i<trs.length;i++)
{
idArr.push(trs[i]); //here you push only the id and not the element
alert(idArr.innerText);
}
idArr[1].setAttribute("title", "myClass");
</script>
但我不知道你为什么要通过trs数组并将其转换为其他数组。你可以简单地使用它:trs[1].setAttribute("title", "myClass");
问候!