NETSCAPE中获取页面所有元素问题

edwardfay 2005-02-02 05:20:59
假如我知道了table id = table1
在ie中我可以使用document.getElementById("table1").all获得table1中所有元素
但是在netscape中这样不行,请问该如何写?
...全文
83 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
seeu1688 2005-02-02
  • 打赏
  • 举报
回复
用childNodes便利子元素,并作递归

例程:找出<div id=spanid>内所有元素

<body>
<script language="JavaScript">
function getall(o)
{
var oChild = o.childNodes;
for (var i=0; i<oChild.length; i++)
{
if (oChild[i].nodeType == 1)
{
alert(oChild[i].tagName)
if (oChild[i].hasChildNodes())
{
getall(oChild[i]);
}
}
}
}
</script>
<div id=spanid style="border:1 solid red;padding:10px">
<table border=1>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
<form method="POST" target="_blank">
<input type="text" name="txt" value="txt">
</form>
</div>
<br>
<button onclick="getall(document.getElementById('spanid'))">得到方框(div)内的所有元素</button>
</body>
edwardfay 2005-02-02
  • 打赏
  • 举报
回复
其实就是将下列代码改成支持netscape,
aTable = document.getElementById("table1");
for (var i=0;i<aTable.all.length;i++)
{
aEle = aTable.all[i];
tagName = aEle.tagName.toUpperCase();
if ((tagName=="SELECT")||(tagName=="BUTTON")){
aEle.disabled = true;
}else if (tagName=="INPUT") {
if (aEle.type.toUpperCase()!="HIDDEN"){
if (aEle.type.toUpperCase()=="TEXT") {
ReadonlyText(aEle);
}else{
aEle.disabled = true;
}
}
}else if (tagName=="TEXTAREA") {
ReadonlyText(aEle);
}
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧