Home  >  Q&A  >  body text

javascript - 除了使用eval()方式获取input的值,还有更好的方法吗?或者说更标准的方法?

以前一直没有注意到一个问题:

var inputValue = document.getElementById("inputElement").value;

用这个语句都只能得到null。

然而,偶然间看到了一个帖子:

var inputValue = eval(document.getElementById("inputElement")).value;
document.write(inputValue);

这样就能得到用户输入的值了。

我想问用eval()这个方法有什么坏处没有,若想得立刻得到用户输入的值,有没有比较标准的方法?谢谢~~


实在是抱歉,浪费大家时间了,这个问题完全是因为我的电脑抽风所致。然而最后我也没能够弄明白究竟是为什么会出现这种情况(Mac 下的 sublime text2 和 coda)。

这里再澄清以下几点:

  1. 开设这个问题是因为无论如何我都无法通过document.getElementById("inputElement").value来获得用户输入的值。

  2. 偶然间在谷歌看到eval()能够正确的取得用户输入的值,后来经过提醒才发觉原来这个eval()函数这么用有点歪门邪道。

  3. 然后是经网友提点说用Selectors API 的querySelector()方法能够正确的取得输入的值。后来在看《js高级程序设计》一书中才发觉其实跟getElementById差不多,只不过换了个要输入的参数而已。

  4. 最后!TMD!我的电脑又不知道怎么的又XXX好了。getElemId这个方法也可以用了。

所以我才觉得有点对不起大家,犯了这种低级的错误,浪费了各位的宝贵时间。实在是不好意思。麻烦大家了。

以上

ringa_leeringa_lee2655 days ago1254

reply all(11)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 16:36:22

    同意 @getAnswer 的回答

    明明是好的!!!

    为什么http://www.runoob.com/jsref/dom-obj-document.html 上面的不能用.value ?
    你是不是 页面上搜索框里面输了半天 .value出来都是“搜索....” ?

    因为:
    它页面上有2个id="s"的input!!!

    getElementById只会返回第一个!!! 那个你看不见的!!!

    只能说这页面写的垃圾,不尊重规范!

    P.S.实在是看不下去一些误导或者没切重点的评论了...

    reply
    0
  • Cancelreply