javascript中为什么有些标签可以通过 name属性.name属性.属性 这种方式获取到属性值? 10
<body><imgname="img1"alt="thisisimg1"src=""hidden=""/><imgname="img2"alt="thisisimg2"...
<body> <img name="img1" alt="this is img1" src="" hidden="" /> <img name="img2" alt="this is img2" src="" hidden=""/> <form name="sform" action=""> <img name="img3" alt="this is img3" src="" hidden="" /> <input name="input1" type="text" hidden="" value="this is input1"></input> <a name="a1" href="" hidden="">a1</a> <p name="p1" hidden="">this p</p> </form></body><script type="text/javascript"> //img 不管在form内还是 form外通过 name属性.属性 可以直接获取到alt属性; document.write(img1.alt+"<br/>"); document.write(img2.alt+"<br/>"); document.write(img3.alt+"<br/>"); document.write(sform.img3.alt+"<br/>"); //在form内的input 通过form的 name属性.input的name.value 可以获取到value document.write(sform.input1.value+"<br/>"); //在form内的 a、p 标签通过 form的name.name.属性 均取不到数据 document.write(sform.p1.innerText); document.write(sform.a1.innerText);</script>
展开
1个回答
展开全部
这其实是王八的屁股,规定。是JS本身自带的对于特殊元素的简便选取的方法。
在html中,一般最直接的辨别html元素使用的是name和id属性,两者有着细微的不同:id必须页面唯一,但name可以有重复。
在JS中如果id名称不和内置属性或全局变量重名的话,该名称自动成为window对象的属性,而在一个html页面中的最顶层环境中有:
this === window
所以如果我们写一个如下的html元素代码就可以这样引用它:
<input type="button" id="btn" value="Ok" />
<script>
//可以这样引用
btn.onclick = function(){};
//或者这样
window.btn.style = '...';
</script>
对于name属性来说,只有某些类型的html元素具有类似的方法。在这些元素中可以通过全局变量或者document的属性来访问特定name属性的元素,例如:
<div>
<img name="pic" src="#" alt="pic_0" />
<img name="pic" src="#" alt="pic_1" />
<img name="pic" src="#" alt="pic_2" />
</div>
<script>
//可以这样引用name为pic的元素:
for (var i = 0; i < pic.length; i++) {
console.log(pic[i]);
console.log(window.pic[i]);
};
</script>
备注:id可以选取所有元素,name具有类似方法的元素:form, img, iframe, applet, embed, object (。。。)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询