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

求教大神。。。。。。

求大神讲解:任务三中,我想实现的是当你输入1--6里面的数,确定后,勾选正确,然后id="wb"的input文本框内返回null或者未定义,而不是停留在当前数字,这样下次输入可以不用先删除再输入,我之前是这样写的:hobby[j-1].checked = true;后面写j="";但是不行,后来改成document.getElementById("wb").value =""后就可以实现了: var j=document.getElementById("wb").value;为什么用j就不行了?

正在回答

4 回答

我这样写可以实现额,你是哪里出了问题呢?

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

qq_巴黎的雨打湿东京的街_0 提问者

用j="",这个的时候不能实现,必须重新定义document.getElementById("wb").value ="";我在自己和慕课上的编译器都不行。不过问题我已经想到了一点,你看看对不对, var j=document.getElementById("wb").value; j="a"(比如j=a) 这就相当于将j重新赋值了,而document.getElementById("wb").value的值不随着改变;如果要改变的话,我只知道c语言上有个指针能形,js我就不知道了
2017-07-31 回复 有任何疑惑可以回复我~
#2

猪小小屁 回复 qq_巴黎的雨打湿东京的街_0 提问者

不是,这个是关于参数传递的问题。 var j=document.getElementById("wb").value,定义的这个变量j是通过Id的方式来获取文本框的那个值,如果你给j赋值j="a",document.getElementById("wb").value的值当然不会随着改变,因为j是用来获取document.getElementById("wb").value的值的,而document.getElementById("wb").value的值是用户输入的那个值,不知道这样说你明白不?可不可以把你的代码贴出来看一下?
2017-08-01 回复 有任何疑惑可以回复我~
#3

qq_巴黎的雨打湿东京的街_0 提问者

非常感谢!
2017-08-06 回复 有任何疑惑可以回复我~

不管是对象,还是就是一个简单的变量,它们都是变量,换一种说法就是JS里的对象是一个比较复杂的变量,它有自己的一些属性。而它们获取值这都是一个参数传递的过程。就像C里的,参数传递,实参传形参,而不能形参传实参,属于单向传递。

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

j不行,你应该试一试j.value=""

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

helllovebody

前面那句当我没说,在javascript中,变量的定义十分的间接,不用自己声明类型,j作为你自己定义的变量,而document.getElementByName()是函数,也是一个封装,他可以作为一个对象使用,如果定义 j=document.getElementById("wb"),那么j作为一个对象,拥有自己的动作和成员,就可以使用j.value这种语法,但是定义为 documetn.getElementById("wb").value,就不是一个对象,而是成为一个value类型的变量了。我是这么理解的,如果你更改j,这个操作不会传达到"wb.value"上
2017-08-05 回复 有任何疑惑可以回复我~

我想实现的是当你输入1--6里面的数,确定后,勾选正确,然后id="wb"的input文本框内返回null或者未定义,而不是停留在当前数字,这样下次输入可以不用先删除再输入

其实很简单 给个if   判断 文本框的value  如下 望采纳

function checkone(){

            var j=document.getElementById("wb").value;

            var out = document.getElementById("wb");

         // 任务3

            var change = document.getElementById("hobby"+j);

                change.checked = true;

            if(out.value != ""){

                 out.value = "";

             } 

       }


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

猪小小屁

这样可以,不过在编程效率上来讲,要实现同样的功能,用最简洁的语言去实现最好了,所以就可以直接设置document.getElementById("wb").value=""即可。对了,就是直接令j=""不可以实现,上次我弄错了,可能是我把之前的代码没有刷新,而我以为是这个生效了,所以...不好意思,可能误导你了。不过,我觉得的这个问题的实质就是参数传递
2017-08-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

求教大神。。。。。。

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