相思资源网 Design By www.200059.com
一个自定义的循环遍历元素文本内容的函数
该函数可以确保在HTML和XML DOM文档中很好的工作,使用该函数,就能够获取任何元素文本内容了
循环遍历元素文本内容
复制代码 代码如下:
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=gb2312">
<title>一个循环遍历元素文本内容的函数</title>
</head>
<body>
<div id="test">
<ul>
<li><a href="#">a标签1</a></li>
<li><a href="#">a标签2</a></li>
<li><a href="#">a标签3</a></li>
<li><a href="#">a标签4</a></li>
</ul>
</div>
<script type="text/javascript">
<!--
function text(e){
//如果传入的是元素,则继续遍历其子元素,否则假定他是一个数组
e=e.childNodes || e;
var t="";
//遍历所有的子节点
for(var i=0;i<e.length;i++){
if(e[i].nodeType!=1){//如果不是元素节点,则追加其文本值
t+=e[i].nodeValue+"<br>";
}else{
t+=text(e[i].childNodes);//否则,继续递归调用
}
}
return t;
}
var obj=document.getElementById('test');
var text=text(obj);
document.write(text);
//-->
</script>
</body>
</html>
通常,我们使用previousSibling,nextSibling,firstChild,lastChild等等来遍历DOM文档,但是,往往会将文本节点也遍历出来,一般情况下,我们不大需要遍历文本节点。所以,这里,我们可以使用自定义的几个函数将previousSibling,nextSibling,firstChild,lastChild封装起来,跳过遍历到的文本节点,而直接取得元素节点
查找节点的几个替代函数
复制代码 代码如下:
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=gb2312">
<title>previousSibling,nextSibling,firstChild,lastChild和parentNode的替代函数</title>
<script type="text/javascript">
<!--
//查找当前元素的前一个兄弟元素节点(注意是元素节点而不是文本节点)
function prev(o){
do{
o=o.previousSibling;
}while(o.nodeType!=1 && o);//如果前一个兄弟节点是元素节点则跳出循环
return o;
}
//查找当前元素的下一个兄弟元素节点(注意是元素节点而不是文本节点)
function next(o){
do{
o=o.nextSibling;
}while(o.nodeType!=1 && o);//如果下一个兄弟节点是元素节点则跳出循环
return o;
}
//查找元素的第一个子元素的函数
function first(o){
o=o.firstChild;
return o.nodeType!=1 && o ? next(o) : o;//如果第一个子节点是元素节点,则返回,否则调用next函数,查找下一个兄弟元素
}
//查找元素的最后一个子元素的函数
function last(o){
o=o.lastChild;
return o.nodeType!=1 && o ? prev(o) : o;//如果最后一个子节点是元素节点,则返回,否则调用prev函数,查找前一个兄弟元素
}
//-->
</script>
</head>
<body>
<div id="test">
<p>大部分的WEB开发者在大多数情况下仅仅需要遍历DOM元素而非相邻的文本节点</p>
<p>所以,我们可以自己定义几个函数用于替代<b>previousSibling,nextSibling,firstChild,lastChild和parentNode</b></p>
<ul>
<li><a href="#">a标签1</a></li>
<li><a href="#">a标签2</a></li>
<li><a href="#">a标签3</a></li>
<li><a href="#">a标签4</a></li>
</ul>
</div>
<script type="text/javascript">
<!--
var obj=document.getElementById('test');
document.write("使用nextSibling返回的div元素的下一个兄弟节点,①节点类型:"+obj.nextSibling.nodeType+"②节点名称:"+obj.nextSibling.nodeName+"<br>");
document.write("使用自定义的next函数返回的div元素的下一个兄弟元素,①节点类型:"+next(obj).nodeType+"②节点名称:"+next(obj).nodeName+"<br>");
document.write("使用firstChild返回的div元素的第一个子节点,①节点类型:"+obj.firstChild.nodeType+"②节点名称:"+obj.firstChild.nodeName+"<br>");
document.write("使用自定义的first函数返回的div元素的第一个子元素,①节点类型:"+first(obj).nodeType+"②节点名称:"+first(obj).nodeName+"<br>");
document.write("使用lastChild返回的div元素的最后一个子节点,①节点类型:"+obj.lastChild.nodeType+"②节点名称:"+obj.lastChild.nodeName+"<br>");
document.write("使用自定义的last函数返回的div元素的最后一个子元素,①节点类型:"+last(obj).nodeType+"②节点名称:"+last(obj).nodeName+"<br>");
//-->
</script>
</body>
</html>
获取表单对象的 7 种方式
多种获取表单对象的方式
复制代码 代码如下:
<html>
<head>
<title>获取表单对象的 7 种方式</title>
</head>
<body>
<form name="myform">
<input type="text" value="获取表单对象的 7 种方式" name="test">
</form>
<script type="text/javascript">
<!--
document.write("方式1:"+document.myform.test.value+"<br>");//经常用
document.write("方式2:"+document.forms[0].test.value+"<br>");//通过下标索引访问,较常用
document.write("方式3:"+document.forms['myform'].test.value+"<br>"); //方式3和方式4可以切换的,这是源于js访问对象的方式可以采用数组形式来访问的缘故
document.write("方式4:"+document.forms.myform.test.value+"<br>");
document.write("方式5:"+document['myform'].test.value+"<br>");
document.write("方式6:"+document.forms.item(0).test.value+"<br>");//注意 是item(),不是item[]
document.write("方式7:"+document.forms.item('myform').test.value+"<br>");
//-->
</script>
</body>
</html>
使用javascript实现全选,反选,全不选的功能
复制代码 代码如下:
<html>
<head>
<title>全选,反选,全不选</title>
</head>
<body>
<script type="text/javascript">
<!--
for (var i=0;i<20;i++){
document.write('测试'+(i+1)+'<input type="checkbox" name="sel[]"><br>');
}
var o=document.getElementsByName("sel[]");//全局变量
//全选
function selall(){
for(var i=0;i<o.length;i++){
o[i].checked="true";
}
}
//全不选
function noselall(){
for(var i=0;i<o.length;i++){
o[i].checked="";
}
}
//反选
function invert(){
for(var i=0;i<o.length;i++){
if(o[i].checked==true){
o[i].checked="";
}else{
o[i].checked=true;
}
}
}
//-->
</script>
<a href="javascript:selall(this)">全选</a>
<a href="javascript:noselall(this)">全不选</a>
<a href="javascript:invert(this)">反选</a>
</body>
</html>
鼠标移上去,显示子栏目列表
复制代码 代码如下:
显示隐藏菜单
<html>
<head>
<title>操作菜单</title>
<style>
li{
list-style:none;
}
#menu ul li{
float:left;
width:75px;
height:30px;
text-align:center;
}
#submenu{
clear:both;
}
#submenu ul li{
background:#888;
width:236px;
}
#submenu ul li a{
color:#fff;
text-decoration:none;
}
.highlight{
background:#888;
}
</style>
</head>
<body>
<div id="menu">
<ul>
<li onmouseover="change(0)" class="highlight">Menu1</li>
<li onmouseover="change(1)">Menu2</li>
<li onmouseover="change(2)">Menu3</li>
</ul>
</div>
<div id="submenu">
<ul>
<li>
<a href="#">子菜单1</a><br>
<a href="#">子菜单1</a><br>
<a href="#">子菜单1</a><br>
<a href="#">子菜单1</a><br>
</li>
<li style="display:none">
<a href="#">子菜单2</a><br>
<a href="#">子菜单2</a><br>
<a href="#">子菜单2</a><br>
<a href="#">子菜单2</a><br>
</li>
<li style="display:none">
<a href="#">子菜单3</a><br>
<a href="#">子菜单3</a><br>
<a href="#">子菜单3</a><br>
<a href="#">子菜单3</a><br>
</li>
</ul>
</div>
<script type="text/javascript">
<!--
var menu=document.getElementById("menu").getElementsByTagName("li");
var submenu=document.getElementById('submenu').getElementsByTagName('li');
function change(num){
for (var i=0;i<menu.length;i++){
if(i==num){
menu[num].className="highlight";
submenu[num].style.display="block";
}else{
menu[i].className="";
submenu[i].style.display="none";
}
}
}
//-->
</script>
</body>
</html>
通过for...in循环语句,可以遍历出某个对象中的属性
比如,我们想要看下document对象中的所有属性名和属性值,可以使用如下所示的代码:
复制代码 代码如下:
View Code
<html>
<head>
<title>遍历document文档对象的所有属性</title>
</head>
<body>
<script type="text/javascript">
<!--
for (var pro in document){
document.write("document."+pro+"="+document[pro]+"<br>");
}
//-->
</script>
</body>
</html>
同理,我们也可以用以上方法遍历window对象,location对象,history对象等的属性,当然,也可以用来遍历自定义对象的属性
该函数可以确保在HTML和XML DOM文档中很好的工作,使用该函数,就能够获取任何元素文本内容了
循环遍历元素文本内容
复制代码 代码如下:
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=gb2312">
<title>一个循环遍历元素文本内容的函数</title>
</head>
<body>
<div id="test">
<ul>
<li><a href="#">a标签1</a></li>
<li><a href="#">a标签2</a></li>
<li><a href="#">a标签3</a></li>
<li><a href="#">a标签4</a></li>
</ul>
</div>
<script type="text/javascript">
<!--
function text(e){
//如果传入的是元素,则继续遍历其子元素,否则假定他是一个数组
e=e.childNodes || e;
var t="";
//遍历所有的子节点
for(var i=0;i<e.length;i++){
if(e[i].nodeType!=1){//如果不是元素节点,则追加其文本值
t+=e[i].nodeValue+"<br>";
}else{
t+=text(e[i].childNodes);//否则,继续递归调用
}
}
return t;
}
var obj=document.getElementById('test');
var text=text(obj);
document.write(text);
//-->
</script>
</body>
</html>
通常,我们使用previousSibling,nextSibling,firstChild,lastChild等等来遍历DOM文档,但是,往往会将文本节点也遍历出来,一般情况下,我们不大需要遍历文本节点。所以,这里,我们可以使用自定义的几个函数将previousSibling,nextSibling,firstChild,lastChild封装起来,跳过遍历到的文本节点,而直接取得元素节点
查找节点的几个替代函数
复制代码 代码如下:
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=gb2312">
<title>previousSibling,nextSibling,firstChild,lastChild和parentNode的替代函数</title>
<script type="text/javascript">
<!--
//查找当前元素的前一个兄弟元素节点(注意是元素节点而不是文本节点)
function prev(o){
do{
o=o.previousSibling;
}while(o.nodeType!=1 && o);//如果前一个兄弟节点是元素节点则跳出循环
return o;
}
//查找当前元素的下一个兄弟元素节点(注意是元素节点而不是文本节点)
function next(o){
do{
o=o.nextSibling;
}while(o.nodeType!=1 && o);//如果下一个兄弟节点是元素节点则跳出循环
return o;
}
//查找元素的第一个子元素的函数
function first(o){
o=o.firstChild;
return o.nodeType!=1 && o ? next(o) : o;//如果第一个子节点是元素节点,则返回,否则调用next函数,查找下一个兄弟元素
}
//查找元素的最后一个子元素的函数
function last(o){
o=o.lastChild;
return o.nodeType!=1 && o ? prev(o) : o;//如果最后一个子节点是元素节点,则返回,否则调用prev函数,查找前一个兄弟元素
}
//-->
</script>
</head>
<body>
<div id="test">
<p>大部分的WEB开发者在大多数情况下仅仅需要遍历DOM元素而非相邻的文本节点</p>
<p>所以,我们可以自己定义几个函数用于替代<b>previousSibling,nextSibling,firstChild,lastChild和parentNode</b></p>
<ul>
<li><a href="#">a标签1</a></li>
<li><a href="#">a标签2</a></li>
<li><a href="#">a标签3</a></li>
<li><a href="#">a标签4</a></li>
</ul>
</div>
<script type="text/javascript">
<!--
var obj=document.getElementById('test');
document.write("使用nextSibling返回的div元素的下一个兄弟节点,①节点类型:"+obj.nextSibling.nodeType+"②节点名称:"+obj.nextSibling.nodeName+"<br>");
document.write("使用自定义的next函数返回的div元素的下一个兄弟元素,①节点类型:"+next(obj).nodeType+"②节点名称:"+next(obj).nodeName+"<br>");
document.write("使用firstChild返回的div元素的第一个子节点,①节点类型:"+obj.firstChild.nodeType+"②节点名称:"+obj.firstChild.nodeName+"<br>");
document.write("使用自定义的first函数返回的div元素的第一个子元素,①节点类型:"+first(obj).nodeType+"②节点名称:"+first(obj).nodeName+"<br>");
document.write("使用lastChild返回的div元素的最后一个子节点,①节点类型:"+obj.lastChild.nodeType+"②节点名称:"+obj.lastChild.nodeName+"<br>");
document.write("使用自定义的last函数返回的div元素的最后一个子元素,①节点类型:"+last(obj).nodeType+"②节点名称:"+last(obj).nodeName+"<br>");
//-->
</script>
</body>
</html>
获取表单对象的 7 种方式
多种获取表单对象的方式
复制代码 代码如下:
<html>
<head>
<title>获取表单对象的 7 种方式</title>
</head>
<body>
<form name="myform">
<input type="text" value="获取表单对象的 7 种方式" name="test">
</form>
<script type="text/javascript">
<!--
document.write("方式1:"+document.myform.test.value+"<br>");//经常用
document.write("方式2:"+document.forms[0].test.value+"<br>");//通过下标索引访问,较常用
document.write("方式3:"+document.forms['myform'].test.value+"<br>"); //方式3和方式4可以切换的,这是源于js访问对象的方式可以采用数组形式来访问的缘故
document.write("方式4:"+document.forms.myform.test.value+"<br>");
document.write("方式5:"+document['myform'].test.value+"<br>");
document.write("方式6:"+document.forms.item(0).test.value+"<br>");//注意 是item(),不是item[]
document.write("方式7:"+document.forms.item('myform').test.value+"<br>");
//-->
</script>
</body>
</html>
使用javascript实现全选,反选,全不选的功能
复制代码 代码如下:
<html>
<head>
<title>全选,反选,全不选</title>
</head>
<body>
<script type="text/javascript">
<!--
for (var i=0;i<20;i++){
document.write('测试'+(i+1)+'<input type="checkbox" name="sel[]"><br>');
}
var o=document.getElementsByName("sel[]");//全局变量
//全选
function selall(){
for(var i=0;i<o.length;i++){
o[i].checked="true";
}
}
//全不选
function noselall(){
for(var i=0;i<o.length;i++){
o[i].checked="";
}
}
//反选
function invert(){
for(var i=0;i<o.length;i++){
if(o[i].checked==true){
o[i].checked="";
}else{
o[i].checked=true;
}
}
}
//-->
</script>
<a href="javascript:selall(this)">全选</a>
<a href="javascript:noselall(this)">全不选</a>
<a href="javascript:invert(this)">反选</a>
</body>
</html>
鼠标移上去,显示子栏目列表
复制代码 代码如下:
显示隐藏菜单
<html>
<head>
<title>操作菜单</title>
<style>
li{
list-style:none;
}
#menu ul li{
float:left;
width:75px;
height:30px;
text-align:center;
}
#submenu{
clear:both;
}
#submenu ul li{
background:#888;
width:236px;
}
#submenu ul li a{
color:#fff;
text-decoration:none;
}
.highlight{
background:#888;
}
</style>
</head>
<body>
<div id="menu">
<ul>
<li onmouseover="change(0)" class="highlight">Menu1</li>
<li onmouseover="change(1)">Menu2</li>
<li onmouseover="change(2)">Menu3</li>
</ul>
</div>
<div id="submenu">
<ul>
<li>
<a href="#">子菜单1</a><br>
<a href="#">子菜单1</a><br>
<a href="#">子菜单1</a><br>
<a href="#">子菜单1</a><br>
</li>
<li style="display:none">
<a href="#">子菜单2</a><br>
<a href="#">子菜单2</a><br>
<a href="#">子菜单2</a><br>
<a href="#">子菜单2</a><br>
</li>
<li style="display:none">
<a href="#">子菜单3</a><br>
<a href="#">子菜单3</a><br>
<a href="#">子菜单3</a><br>
<a href="#">子菜单3</a><br>
</li>
</ul>
</div>
<script type="text/javascript">
<!--
var menu=document.getElementById("menu").getElementsByTagName("li");
var submenu=document.getElementById('submenu').getElementsByTagName('li');
function change(num){
for (var i=0;i<menu.length;i++){
if(i==num){
menu[num].className="highlight";
submenu[num].style.display="block";
}else{
menu[i].className="";
submenu[i].style.display="none";
}
}
}
//-->
</script>
</body>
</html>
通过for...in循环语句,可以遍历出某个对象中的属性
比如,我们想要看下document对象中的所有属性名和属性值,可以使用如下所示的代码:
复制代码 代码如下:
View Code
<html>
<head>
<title>遍历document文档对象的所有属性</title>
</head>
<body>
<script type="text/javascript">
<!--
for (var pro in document){
document.write("document."+pro+"="+document[pro]+"<br>");
}
//-->
</script>
</body>
</html>
同理,我们也可以用以上方法遍历window对象,location对象,history对象等的属性,当然,也可以用来遍历自定义对象的属性
标签:
学习实践
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无Jvascript学习实践案例(开发常用)的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?