how2j.cn

关键字 简介 示例代码
nodeName
节点名称
示例代码
nodeValue
节点值
示例代码
nodeType
节点类型
示例代码
innerHTML
元素的文本内容
示例代码
id
value
className
元素上的属性
示例代码
练习-验证账号是否已经存在
示例代码
答案-验证账号是否已经存在
示例代码
练习-切换不同的图片
示例代码
答案-切换不同的图片
示例代码
练习-判断输入框里的值,是否是整数(浮点数也不行)
示例代码
答案-判断输入框里的值,是否是整数(浮点数也不行)
示例代码
示例 1 : 节点名称   
示例 2 : 节点值   
示例 3 : 节点类型   
示例 4 : 元素的文本内容   
示例 5 : 元素上的属性   
示例 6 : 练习-验证账号是否已经存在   
示例 7 : 答案-验证账号是否已经存在   
示例 8 : 练习-切换不同的图片   
示例 9 : 答案-切换不同的图片   
示例 10 : 练习-判断输入框里的值,是否是整数(浮点数也不行)   
示例 11 : 答案-判断输入框里的值,是否是整数(浮点数也不行)   

示例 1 :

节点名称

nodeName表示一个节点的名字
如本例:
document.nodeName 文档的节点名,是 固定的#document
div1.nodeName 元素的节点名,是对应的标签名 div
div1.attributes[0].nodeName 属性的节点名,是对应的属性名 id
div1.childNodes[0].nodeName 内容的节点名,是固定的 #text
运行效果
<html> <div id="d1">hello HTML DOM</div> <script> function p(s){ document.write(s); document.write("<br>"); } var div1 = document.getElementById("d1"); p("document的节点名称:"+document.nodeName); p("div元素节点的节点名称:"+div1.nodeName); p("div下属性节点的节点名称:"+div1.attributes[0].nodeName); p("div下内容节点的节点名称:"+div1.childNodes[0].nodeName); </script> </html>
<html>
 
<div id="d1">hello HTML DOM</div>
<script>
function p(s){
    document.write(s);
    document.write("<br>");
}
var  div1 = document.getElementById("d1");
p("document的节点名称:"+document.nodeName);
p("div元素节点的节点名称:"+div1.nodeName);
p("div下属性节点的节点名称:"+div1.attributes[0].nodeName);
p("div下内容节点的节点名称:"+div1.childNodes[0].nodeName);
</script>
</html>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 2 :

节点值

nodeValue表示一个节点的值
如本例:
document.nodeValue 文档的节点值,是 null
div1.nodeValue 元素的节点值,是null
div1.attributes[0].nodeValue 属性的节点值,是对应的属性值 d1
div1.childNodes[0].nodeValue 内容的节点值,是内容 即: #text
运行效果
<html> <div id="d1">hello HTML DOM</div> <script> function p(s){ document.write(s); document.write("<br>"); } var div1 = document.getElementById("d1"); p("document是没有nodeValue的:"+document.nodeValue); p("元素节点是没有nodeValue的:"+div1.nodeValue); p("属性节点id的nodeValue:"+div1.attributes[0].nodeValue); p("内容节点的nodeValue:"+div1.childNodes[0].nodeValue); </script> </html>
<html>
  
<div id="d1">hello HTML DOM</div>
<script>
function p(s){
    document.write(s);
    document.write("<br>");
}
var  div1 = document.getElementById("d1");
p("document是没有nodeValue的:"+document.nodeValue);
p("元素节点是没有nodeValue的:"+div1.nodeValue);
p("属性节点id的nodeValue:"+div1.attributes[0].nodeValue);
p("内容节点的nodeValue:"+div1.childNodes[0].nodeValue);
</script>
</html>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 3 :

节点类型

nodeType表示一个节点的类型
不同的节点类型,对应的节点类型值是不一样的
如本例:
document.nodeType 文档的节点类型,是 9
div1.nodeType 元素的节点类型,是 1
div1.attributes[0].nodeType 属性的节点类型,是 2
div1.childNodes[0].nodeType 内容的节点类型,是 3
运行效果
节点类型
<html> <div id="d1">hello HTML DOM</div> <script> function p(s){ document.write(s); document.write("<br>"); } var div1 = document.getElementById("d1"); p("document的nodeType是:"+document.nodeType); p("元素节点的nodeType是:"+div1.nodeType); p("属性节点的nodeType是:"+div1.attributes[0].nodeType); p("内容节点的nodeType是:"+div1.childNodes[0].nodeType); </script> </html>
<html>
   
<div id="d1">hello HTML DOM</div>
<script>
function p(s){
    document.write(s);
    document.write("<br>");
}
var  div1 = document.getElementById("d1");
p("document的nodeType是:"+document.nodeType);
p("元素节点的nodeType是:"+div1.nodeType);
p("属性节点的nodeType是:"+div1.attributes[0].nodeType);
p("内容节点的nodeType是:"+div1.childNodes[0].nodeType);
</script>
</html>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 4 :

元素的文本内容

修改与获取内容的值可以通过 childNodes[0].nodeValue进行
还有个简便办法就是通过innerHTML进行。 效果是一样的。
运行效果
<html> <div id="d1">hello HTML DOM</div> <script> function changeDiv1(){ document.getElementById("d1").childNodes[0].nodeValue= "通过childNode[0].value改变内容"; } function changeDiv2(){ document.getElementById("d1").innerHTML= "通过innerHTML改变内容"; } </script> <button onclick="changeDiv1()">通过内容节点方式改变div的内容</button> <button onclick="changeDiv2()">通过innerHTML改变div的内容</button> </html>
<html>
   
<div id="d1">hello HTML DOM</div>
<script>

function changeDiv1(){
  document.getElementById("d1").childNodes[0].nodeValue= "通过childNode[0].value改变内容";
}
function changeDiv2(){
  document.getElementById("d1").innerHTML= "通过innerHTML改变内容";
}
</script>

<button onclick="changeDiv1()">通过内容节点方式改变div的内容</button>
<button onclick="changeDiv2()">通过innerHTML改变div的内容</button>

</html>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 5 :

元素上的属性

元素上的属性,比如id,value 可以通过 . 直接访问
如果是自定义属性,那么可以通过如下两种方式来获取

getAttribute("test")
attributes["test"].nodeValue

注: class需要通过className获取
运行效果
<html> <div id="d1">hello HTML DOM</div> <script> function get(){ var input1 = document.getElementById("input1"); var s = "id="+input1.id + "<br>"; s += "value="+input1.value + "<br>"; s += "class="+input1.className + "<br>"; s += "test="+input1.getAttribute("test")+ "<br>"; s += "test="+input1.attributes["test"].nodeValue+ "<br>"; document.getElementById("d1").innerHTML= s; } </script> <input id="input1" class="class1 class2" test="t1" value="这是一个输入框"> <br> <button onclick="get()">获取input的属性</button> <div style="height:30px"></div> </html>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 6 :

练习-验证账号是否已经存在

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
因为截至目前的学习进度,还没有学习服务端的内容,那么就在js使用简单的验证规则: 如果账号是以a或者A开头的,那么就提示已经存在了。
<html> <script> function check(){ var name = document.getElementById("name").value; var noMessage= document.getElementById("noMessage"); var yesMessage= document.getElementById("yesMessage"); noMessage.style.display="none"; yesMessage.style.display="none"; if(0!=name.length){ var firstChar = name.charAt(0); if('a'==firstChar || 'A'==firstChar) noMessage.style.display="inline"; else yesMessage.style.display="inline"; } } </script> <input id="name"> <input type="button" value="验证" onclick="check()"> <span id="noMessage" style="color:red;display:none;">账号已经存在</span> <span id="yesMessage" style="color:green;display:none;">账号可以使用</span> </html>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 7 :

答案-验证账号是否已经存在

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
运行效果
<html> <script> function check(){ var name = document.getElementById("name").value; var noMessage= document.getElementById("noMessage"); var yesMessage= document.getElementById("yesMessage"); noMessage.style.display="none"; yesMessage.style.display="none"; if(0!=name.length){ var firstChar = name.charAt(0); if('a'==firstChar || 'A'==firstChar) noMessage.style.display="inline"; else yesMessage.style.display="inline"; } } </script> <input id="name"> <input type="button" value="验证" onclick="check()"> <span id="noMessage" style="color:red;display:none;">账号已经存在</span> <span id="yesMessage" style="color:green;display:none;">账号可以使用</span> </html>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 8 :

练习-切换不同的图片

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
<script> function switch1(){ var img = document.getElementById("img"); img.src = "http://how2j.cn/study/gareen.jpg"; } function switch2(){ var img = document.getElementById("img"); img.attributes["src"].nodeValue="http://how2j.cn/study/katarina.jpg"; } </script> <button onclick="switch1()">通过src属性切换图片1</button> <br> <button onclick="switch2()">通过属性节点切换图片2</button> <br> <img id="img" width="100" src="http://how2j.cn/study/katarina.jpg"/>
<script>
function switch1(){
var img = document.getElementById("img");
img.src = "http://how2j.cn/study/gareen.jpg";
}
function switch2(){
var img = document.getElementById("img");
img.attributes["src"].nodeValue="http://how2j.cn/study/katarina.jpg";
}
</script>
<button onclick="switch1()">通过src属性切换图片1</button> <br>
<button onclick="switch2()">通过属性节点切换图片2</button> <br>
<img id="img" width="100" src="http://how2j.cn/study/katarina.jpg"/>



源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 9 :

答案-切换不同的图片

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
运行效果
<script> function switch1(){ var img = document.getElementById("img"); img.src = "http://how2j.cn/study/gareen.jpg"; } function switch2(){ var img = document.getElementById("img"); img.attributes["src"].nodeValue="http://how2j.cn/study/katarina.jpg"; } </script> <button onclick="switch1()">通过src属性切换图片1</button> <br> <button onclick="switch2()">通过属性节点切换图片2</button> <br> <img id="img" width="100" src="http://how2j.cn/study/katarina.jpg"/>
<script>
function switch1(){
var img = document.getElementById("img");
img.src = "http://how2j.cn/study/gareen.jpg";
}
function switch2(){
var img = document.getElementById("img");
img.attributes["src"].nodeValue="http://how2j.cn/study/katarina.jpg";
}
</script>
<button onclick="switch1()">通过src属性切换图片1</button> <br>
<button onclick="switch2()">通过属性节点切换图片2</button> <br>
<img id="img" width="100" src="http://how2j.cn/study/katarina.jpg"/>



源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 10 :

练习-判断输入框里的值,是否是整数(浮点数也不行)

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
示例 11 :

答案-判断输入框里的值,是否是整数(浮点数也不行)



HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-08-09 交作业
神乐



很简单的几个作业...
//示例六
<input type="text" id="t1" /><input type="button" value="验证" onclick="get();" />
<div id="d1" style="color:#F00; display:none"></div>

<script>
	function get(){
		var s=document.getElementById("t1").value;
		if(s[0]=="a"||s[0]=="A"){
			document.getElementById("d1").innerHTML="账号已经被占用";
			document.getElementById("d1").style.color="#F00";
			document.getElementById("d1").style.display="inline";
		}else{
			document.getElementById("d1").innerHTML="账号可以使用";
			document.getElementById("d1").style.color="#0F0";
			document.getElementById("d1").style.display="inline";
			}
		}
</script>
//示例八
<input type="button" value="通过src属性切换图片1" id="b1" onclick="gets();"/>
<br />
<input type="button" value="通过属性节点切换图片2" id="b2" onclick="gett();"/>
<br />
<img id="photo" src="images/4.png" />
<script>
	function gets(){
		document.getElementById("photo").src="images/6.png";
	}
	function gett(){
		var sb=document.getElementById("photo").attributes;
		sb["src"].nodeValue="images/4.png"
	}	
</script>

//示例十
<input type="text" id="t1" /><input type="button" value="判断是否整数" onclick="get();" />
<div id="d1" style="color:#FFF;display:none;"></div>
<script>
	function get(){
		var types=document.getElementById("t1").value;
		var num=new Number(types);
		if(isNaN(num)){
			document.getElementById("d1").style.color="#F00";
			document.getElementById("d1").style.display="inline";
			document.getElementById("d1").innerHTML="输入框中的不是一个数字";
			return;
		}
		var value=Math.round(num);
		if(value!=num){
			document.getElementById("d1").style.color="#F00";
			document.getElementById("d1").style.display="inline";
			document.getElementById("d1").innerHTML="输入的是一个浮点数,不是整数";
		}else{
			document.getElementById("d1").style.color="#0F0";
			document.getElementById("d1").style.display="inline";
			document.getElementById("d1").innerHTML="输入的是一个整数";
		}
	}
</script>

							


1 个答案

神乐 答案时间:2018-08-09
想了一下,示例十还是不能完全判断浮点数.如果输入5.0还是会认为是一个整数。 多加一点代码就可以,new一个String对象,判断输入是不是有小数点就可以了。




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-08-07 看不见第十题。。。。。
最帅你健哥



如题。。。。。。。。。

							

							






答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-07-31 示例六有关获取属性值的问题
2018-07-26 你们示例10做的太繁琐了
2018-07-05 这段代码是什么意思呢
2018-06-01 实例代码里边的P是什么意思?
2018-05-20 第十被NaN坑了好久,后来才发现可以用isNan()函数判断
2018-04-07 当一个div里面有两个或者多个span这样的子元素的时候,div.childNodes[0].nodeValue;这句没有取到值
2018-03-27 关于示例5
2018-03-24 示例6答案,总觉得好蠢的代码
2018-02-27 作业
2018-02-05 第十题滴作业
2018-01-24 为什么前边的计算器和江南皮革厂可以用value直接赋值,本章节要用nodevalue呢?
2018-01-12 实例10。。提交作业
2017-12-25 示例8问题
2017-12-25 例6答案,看看有没有问题
2017-10-02 第十题没有答案,那我贴一个老师不介意吧
2017-09-28 +=
2017-08-13 是不是nodeValue 不能及时更新啊
2017-06-18 第十题怎么判断是不是浮点数
2017-04-20 示例10 答案,这样写可以吗?希望老师给些指导
2017-04-19 示例11的问题
2017-03-17 示例5最后面为什么要特意加一个<div style="height:30px"></div>
2017-02-15 示例8代码问题
2017-02-04 示例 10 没有答案, 这样的代码是否可以




提问之前请登陆
关于 前端部分-HTML DOM-节点的属性 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 620943819
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: http://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图