javascript DOM编程

本文介绍如何利用DOM操作获取和修改HTML元素,并通过示例演示了如何使用JavaScript进行DOM操作实现页面交互。此外,还讲解了正则表达式的应用,包括基本规则和常见方法,提供了表单验证的具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.DOM(document object model)文档对象模型编程

2.通过document对象的集合获取标签对象,作用:获取多个或者同类的标签对象。

        all:获取所有标签对象

   forms:获取form标签对象

images:获取imagei标签对象

    links:获取a标签对象

3.通过关系查找标签对象

                 父节点: parentNode属性
                 子节点: childNodes属性
      第一个子节点: firstChild属性
  最后一个子节点: lastChild属性
  下一个兄弟节点: nextSibling属性
  上一个兄弟节点: previousSibling属性

4.同通过document方法查询标签对象

   document.getElementById("id属性值");

   注:使用该方法获取的标签要有id属性,同一个html标签中不能有两个标签id相同。

   documetn.getElementsByName("name属性值");获取name属性名的标签列表。

   document.getElementsByTagName("标签名");获取相同标签名的标签列表。

5.修改标签对象的属性

innerHTML属性:修改标签体内的内容

         value属性:修改value属性值

             src属性:修改图片的src属性

    checked属性:修改单选或多项的默认值

exp:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>点击按钮切换图片</title>
</head>
<body>
<input type="button"  value="切换" onclick="swtch()"/>
<img id="p1" src="2b/60534605_p0.jpg" />
</body>
<script type="text/javascript">
function swtch(){
	var pic=document.getElementById("p1");//通过id获取对象
	pic.src="2b/60666956_p0.jpg";//修改对象的src属性
	}
</script>
</html>

exp:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<input type="checkbox"  name="chos" value="156"/>dark soulIII <br/>
<input type="checkbox"  name="chos" value="124"/>watch dog2<br/>
<input type="checkbox"  name="chos" value="108"/>assassin's creed unity<br/>
<input type="checkbox"  name="chos" value="9"/>protal all<br/>
<input type="checkbox"  name="chos" value="64"/>tomb rider<br/>
<input type="checkbox"  id="all" onchange="switchall()"/>全选
<input type="button" value="结算" onclick="price()" />

</body>
<script type="text/javascript">
function switchall(){
	var All = document.getElementById("all");//通过id获取对象
	var choose = document.getElementsByName("chos");//通过name属性获取对象
	if(All.checked){                   //进行条件判断,checked属性为是否勾选
		for(var i=0;i<choose.length;i++){
			if(choose[i].checked){
				
				}else{
					choose[i].checked=true;
					}
			}
		}else{
			for(var i=0;i<choose.length;i++){
			if(choose[i].checked){
				choose[i].checked=false;
				}else{
					
					}
			}
		}
	}
function price(){
	var sum=0;//定义变量总价格
	var game=document.getElementsByName("chos");
	for(var i=0;i<game.length;i++){//循环获取每个元素
		if(game[i].checked){       //如果勾选,进行加法运算
			var kin=game[i].value; //获取价格value属性进行计算
			kin=parseInt(kin);     //将获取到的value转为number类型
			sum=sum+kin;
			}
		}
	document.write("总价为"+sum);
	}
</script>
</html>


6.正则表达式:var 变量=/正则规则/;
   [a-z]: 表示匹配字母
    *  :  0或多个元素
    +:   1个或多个元素 
    ? :   0或1个元素
    {n,m} 大于n,小于m的个数

正则方法:test():用于匹配指定的字符串,true表示匹配成功,false表示匹配失败

注:在js中,遇到了符合规则的内容,就代表匹配成功,如果要和java一样完全匹配,需要添加边界符号

            开始标记: ^
            结束标记: $

exp:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>正则表达式表单提交</title>
</head>

<body>
<form  action="2b/61646629_p0.png" onsubmit="checkAll()">
用户名:<input type="text" id="username" onblur="testuser()" /><span id="tipuser"></span><br/>
密码:<input type="password" id="passward"/><br/>
再次输入密码:<input type="password" id="repass" onblur="testpass()" /><span id="tiprepa"></span><br/>
<input type="submit" value="确定提交" />
</form>
</body>
<script type="text/javascript">
function testuser(){//定义方法检测用户名是否合法
	var reg=/^[a-zA-Z0-9]{5,15}$/;//定义正则表达式:10到15位字母或数字
	var username=document.getElementById("username");
	var tipuser=document.getElementById("tipuser");
	if(reg.test("username")){//用正则表达式进行匹配
		tipuser.innerHTML="用户名可用";
		return true;
		}else{
			tipuser.innerHTML="用户名不可用";
			return false;
			}
	}
function testpass(){//检测两次密码是否相同
	var passward=document.getElementById("passward").value;
	var repass=document.getElementById("repass").value;
	var hit=document.getElementById("tiprepa");
	if(passward==repass){
		return true;
		}else{
			hit.innerHTML="两次输入密码不一致";
			return false;
			}
	}
function checkAll(){//若上述两项皆合法,返回真,即可以提交
	if(teseuser()&&testpass()){
		return true;
		}else{
			return false;
			}
	}
</script>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值