A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐传任 中级黑马   /  2012-9-23 10:57  /  1617 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


<head>
    <title>练习</title>
    <script type="text/javascript" >
        function f1() {
            var inputs = document.getElementsByName("input");
            for (var i = 0; i < inputs.length; i++) {
                var input = inputs;
                input.onfocus = f2;
                input.onblur = f3;
            }
        }
        function f2() {
            this.style.background = "red";
        }
        function f3() {
            this.style.background = "white";
        }
    </script>
</head>
<body>
<input type="text"  /><br />
<input type="text" /><br />
<input type="text" /><br />
<input type="text" /><br />
<input type="text" /><br />
</body>

麻烦给看看哪里错了,新手不大懂

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览

input=inputs[i] 下面那么打错了,注意一下

本帖最后由 彭书雄 于 2012-9-26 21:23 编辑

初步看了一下 有两个错误
1.赋值input    应该是input=inputs
2.获取元素集合的方法错误
inputs = document.getElementsByTagName(''input);
3.你这段代码 没有调用
在开头处调用f1  函数即可
  1. window.onload=function()
  2. {
  3.     f1();
  4. }
复制代码
其实想给相同表单添加同样一个方法可以使用委托  直接在整个添加一个父级 div 标签  然后通过给div 添加 焦点事件  子标签即可获得焦点事件,既然是新手,以后会学到,一点点来,猥琐这里只是提一下,有新区可以研究一下 {:soso_e130:}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
不对啊。  var inputs = document.getElementsByName("input");input不是这个文本框的名字啊。文本框没有定义名字啊。这是怎么回事啊。难道可以这样用吗
回复 使用道具 举报
如楼上所说,var inputs = document.getElementsByName("input")这句有问题吧,试试改成getElementsByTagName,应该是根据标签来找元素数组吧。
而且下面那个循环里面是不是应该改成var input = inputs[i] 呢?试试吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马