遍历html所有元素 document.getElementsByTagName("*"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <html><script language="JavaScript"><!-- function reSource(){ var obj = document.getElementsByTagName("*"); for(var i = 0;i < obj.length; i++){ alert(obj[i].tagName); } }//--></script><input type="text" name="oText"><span name="oSpan">span</span><div name="oDiv">div</div><img src="" name="oImg"/><input type="button" name="oButton" value="获得" onclick="reSource()"></html> var root=document.documentElement;//接着用递归算法遍历root的innerHTML即可 楼上的都答的很清楚了document.getElementsByTagName("*"),nextSibling需要补充一下使用nextSibling会把文字也作文节点来处理如果只想处理html对象可以使用一个循环来把文字节点过滤掉var oNode=oCurNode.nextSibling;while(!oNode.tagName){ oNode=oNode.nextSibling;} 我用jQuery<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script><script type="text/javascript"> $(document).ready(function(){ $("*").each(function(idx){ alert($(this).attr("tagName")); }); });</script><input type="image" /><input type"text" /><select></select><span></span><p></p> hidden和readonly在ie下原本就获取不到焦点 document.getElementsByName("*")这个不就是遍利所有的吗? 可是我按tab键它还会走到hidden和readonly,并不是越过去 window.document.onkeydown = reSource; function reSource(){ var keycode = event.keyCode; if (keycode ==9) { var temp = window.event.srcElement; var i_temp = temp; var obj = document.getElementsByTagName("*"); for(var i = 0;i < obj.length; i++){ if (i_temp != temp) { alert(i_temp.tagName + i_temp.type + i_temp.name); if (i_temp.tagName == "select" || (i_temp.tagName == "textarea" && i_temp.readOnly==false) || (i_temp.tagName == "input" && i_temp.readOnly==false && i_temp.type !="hidden")) { break; } else { i_temp = obj[i+1]; } } else { if (obj[i].tagName == "select" || obj[i].tagName == "textarea" || obj[i].tagName == "input") { if (temp.tagName + temp.name == obj[i].tagName + obj[i].name) { i_temp = obj[i+1]; } } } //alert(obj[i].tagName +'=='+ obj[i].type+obj[i].name); } alert(i_temp.tagName + i_temp.name); i_temp.focus(); } }</script>专家帮我看看这样为什么不行 if (i_temp.tagName == "select" || (i_temp.tagName == "textarea" && i_temp.readOnly==false) || (i_temp.tagName == "input" && i_temp.readOnly==false && i_temp.type !="hidden"))不要用或||吧!!应该用与&&吧 var obj = document.getElementsByTagName("*"); for(var i = 0;i < obj.length; i++){ if (obj[i].tagName == "select" || (obj[i].tagName == "textarea") || (obj[i].tagName == "INPUT")) { if (obj[i].readOnly == true) { obj[i].tabindex = -1; } } } 动态进行tabindex赋值后为什么不起作用 <input type="text" name="otext" tabindex="1"><input type="hidden" name="ohidden"><input type="text" name="otext2" readonly><input type="text" name="otext3" tabindex="2"><input type="text" name="otext3" tabindex="3"> hidden类型的控件就没有显示在页面上,你能获取焦点?????????????readonley="true"后我在ie和ff2下测试没获得焦点啊???你用的什么浏览器 自己搞定function onloadb(){ var obj = document.getElementsByTagName("*"); for(var i = 0;i < obj.length; i++){ if (obj[i].tagName == "select" || (obj[i].tagName == "textarea") || (obj[i].tagName == "INPUT")) { if (obj[i].readOnly == true) { obj[i].tabIndex = -1; obj[i].setAttribute("tabIndex",-1); } } } } 感谢 showbo ,s_liangchao1s ,chinmo ,mrshelly ,s_liangchao1s ,net_lover 的大力帮助。感谢 avon520 ,xingqiliudehuanghun ,lizhimin0310 的大力支持谢谢 肿么又被循环难住了呢? 哪位高手愿意帮忙解密下这段JS 真心看不懂啊 求一个正则表达式 请高手进来帮我看看这跟随IE移动图层的问题! 在IE中如何重写Element的innerHTML方法 谁知道像这网站里会伸缩的栏目树形导航是怎么做的 http://www.ie-china.com/Photo/Index.html 在javascript中如何获得checkbox 的ID号 问:提交表单时的警告,如果为空,弹出警告窗口 帮忙看看这两段代码啥意思? jq的uploadify上传插件参数传递问题 我将从0开始学程序,学什么最好 JS如可操作XML文件,谢谢了,急
<html>
<script language="JavaScript">
<!--
function reSource(){
var obj = document.getElementsByTagName("*");
for(var i = 0;i < obj.length; i++){
alert(obj[i].tagName);
}
}
//-->
</script>
<input type="text" name="oText">
<span name="oSpan">span</span>
<div name="oDiv">div</div>
<img src="" name="oImg"/>
<input type="button" name="oButton" value="获得" onclick="reSource()">
</html>
//接着用递归算法遍历root的innerHTML即可
需要补充一下使用nextSibling会把文字也作文节点来处理如果只想处理html
对象可以使用一个循环来把文字节点过滤掉
var oNode=oCurNode.nextSibling;
while(!oNode.tagName){
oNode=oNode.nextSibling;
}
<script type="text/javascript">
$(document).ready(function(){
$("*").each(function(idx){
alert($(this).attr("tagName"));
});
});
</script><input type="image" />
<input type"text" />
<select></select><span></span>
<p></p>
hidden和readonly在ie下原本就获取不到焦点
可是我按tab键它还会走到hidden和readonly,并不是越过去
function reSource(){
var keycode = event.keyCode;
if (keycode ==9) {
var temp = window.event.srcElement;
var i_temp = temp;
var obj = document.getElementsByTagName("*");
for(var i = 0;i < obj.length; i++){
if (i_temp != temp) {
alert(i_temp.tagName + i_temp.type + i_temp.name);
if (i_temp.tagName == "select" || (i_temp.tagName == "textarea" && i_temp.readOnly==false) || (i_temp.tagName == "input" && i_temp.readOnly==false && i_temp.type !="hidden")) {
break;
} else {
i_temp = obj[i+1];
}
} else {
if (obj[i].tagName == "select" || obj[i].tagName == "textarea" || obj[i].tagName == "input") {
if (temp.tagName + temp.name == obj[i].tagName + obj[i].name) {
i_temp = obj[i+1];
}
}
}
//alert(obj[i].tagName +'=='+ obj[i].type+obj[i].name);
}
alert(i_temp.tagName + i_temp.name);
i_temp.focus();
}
}</script>
专家帮我看看这样为什么不行
不要用或||吧!!应该用与&&吧
for(var i = 0;i < obj.length; i++){
if (obj[i].tagName == "select" || (obj[i].tagName == "textarea") || (obj[i].tagName == "INPUT")) {
if (obj[i].readOnly == true) {
obj[i].tabindex = -1;
}
}
}
动态进行tabindex赋值后为什么不起作用
<input type="text" name="otext" tabindex="1">
<input type="hidden" name="ohidden">
<input type="text" name="otext2" readonly>
<input type="text" name="otext3" tabindex="2">
<input type="text" name="otext3" tabindex="3">
hidden类型的控件就没有显示在页面上,你能获取焦点?????????????readonley="true"后我在ie和ff2下测试没获得焦点啊???你用的什么浏览器
var obj = document.getElementsByTagName("*");
for(var i = 0;i < obj.length; i++){
if (obj[i].tagName == "select" || (obj[i].tagName == "textarea") || (obj[i].tagName == "INPUT")) {
if (obj[i].readOnly == true) {
obj[i].tabIndex = -1;
obj[i].setAttribute("tabIndex",-1);
}
}
}
}
感谢 avon520 ,xingqiliudehuanghun ,lizhimin0310 的大力支持谢谢