为了账号安全,请及时绑定邮箱和手机立即绑定

为什么getElementsByName就不能设置成红色呢?

<!DOCTYPE HTML>

<html>

<head>

<script type="text/javascript">

function getnum(){

  var mynode= document.getElementsByName("myt");  

 mynode.style.color="red";

}

</script>

</head>


<body>

<input name="myt" type="text" value="1">

<input name="myt" type="text" value="2">

<input name="myt" type="text" value="3">

<input name="myt" type="text" value="4">

<input name="myt" type="text" value="5">

<input name="myt" type="text" value="6">


<br />

<input type="button" onclick="getnum()" value="看看有几项?" />

</body>

</html>


正在回答

4 回答

你有没有发现”getElementsByName“与”getElementById“相比,它的Element多了一个S,这就是提示你这个方法获取的是一组元素,而不是如ID那样是一个元素,在数组阶段除了Length属性外,其他没学,我现在也只能一个个更改数组内的内容,参考代码如下:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function getnum(){
 var mynode= document.getElementsByName("myt");
 for(var i=0;i<mynode.length;i++)
 {
   mynode[i].style.color="red";
 }
}
</script>
</head>

<body>
<input name="myt" type="text" value="1">
<input name="myt" type="text" value="2">
<input name="myt" type="text" value="3">
<input name="myt" type="text" value="4">
<input name="myt" type="text" value="5">
<input name="myt" type="text" value="6">

<br />
<input type="button" onclick="getnum()" value="看看有几项?" />
</body>


4 回复 有任何疑惑可以回复我~

此时获得的mynode是一个对象数组,即mynode=[input,input,...,input],是六个input对象。如果你要访问,必须加上索引来访问对象数组中的每一个元素即:mynode[0]访问第一个input,依次类推。要是input里面的值变成红色可使用以下设置:

for(var i in mynode) {//遍历数组,获取其每一个元素,相当于for(i=0;i<=mynode.length;i++)

      mynode[i].style.color="red";//设置每一个元素的样式

  }


0 回复 有任何疑惑可以回复我~

因为getElementsByName获取到的是一个数组,数组本身不是DOM对象,当然没有DOM对象的属相和方法

数组属性:

length 用法:<数组对象>.length;返回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。

数组方法:

数组对象 属性方法

0 回复 有任何疑惑可以回复我~

可能是你代码打错了 仔细看看 有可能是backgroundcolor

0 回复 有任何疑惑可以回复我~
#1

qq_赵成冬_0 提问者

不是的
2016-08-23 回复 有任何疑惑可以回复我~
#2

bwin 回复 qq_赵成冬_0 提问者

mynode 是个集合 要具体到每一个才能设置背景 mynode[i]
2016-08-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么getElementsByName就不能设置成红色呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信