javascript中name和id不能和方法名重名的问题

<script>
			function btn() {
				alert("ok");
			}
		</script>
	</head>
	<body>
		<form name="form1" id="form1">
			<input id="btn" type="button" value="测试" onclick="btn();"/>
		</form>
	</body>

 在javascript中,如果我们的id或者那么和方法名重名,那么就会出现方法不可用的情况。这是因为在javascript中

<input  id ="btn" type="button" value="测试" onclick="btn();"/>是一个元素节点,更具体一些说是对象。

如果画内存图,它非常类似于java的内存图。只不过它的属性是id,type这些属性(类似于是局部变量),名字是我们写的名字。如果一个方法的名字和Id相同。那么调用的时候,它就分不清你调用的是id(或者name)的名字,还是方法名的名字。这样就会造成方法不可以被调用的情况。所以,我们在写方法名的时候,一定要注意不能和form里的元素的名称相同。

但是关于这个问题还有一个疑问:

<script>
			function btn() {
				alert("ok");
			}
		</script>
	</head>
	<body>
		<form name="form1" id="form1">
			<textarea id="btn" cols="50" rows="5"></textarea>
			<input id="btn2" type="button" value="发送信息" onclick="btn();"/>
		</form>
	</body>

 如果我们写一个textarea,id是btn,和script函数的名称相同,也是调用不出来的,这又是为什么呢?

相关推荐