document.getElementById().value取不到值的原因是什么?

 我来答
百度网友a9f118e
推荐于2019-10-29 · TA获得超过8249个赞
知道小有建树答主
回答量:57
采纳率:0%
帮助的人:8474
展开全部
  1. Javascript本身不会报错,只要不出你预期的结果,那么代码肯定是有问题的。

这个时候可以看看代码里的符号,比如说单引号、双引号、大括号、小括号等等...因为这段代码不是直接在JS文件中写的,而是用PHP进行构造来输出的,再加上PHP本身输出需要用到单引号、双引号,所以这个时候很多符号混合在一起是很容易出错。不要紧,你可以先运行一下,然后再查看网页源代码来看看当前的Javascript到底是不是你需要的那一段,看到少了什么符号我们就立马给补上,不过这个时候还需要注意一点,如果要直接输出单引号、双引号的话,在PHP的代码里这里需要用‘’来进行转义。

2.上面的问题一般是不会弹出任何结果的,即使我们用alert来查看设置的变量,因为Javascript代码存在问题,它根本就没办法执行!假设你已经改正了语法上的错误,那么我们继续看...我们可以用以下代码来获取用户输入的页码,并打印输出看看正确与否。

代码如下    

1var uPage=document.getElementById('pa').value; alert(uPage);

如果这个时候一直弹出"undefined"的提示,那么至少说明你的Javascript代码正确运行了,它没有语法上的错误!至于为什么undefined,我调试了很久都没找出原因,后来无意中尝试把value改成innerHTML,居然打印出了一些结果,不过仔细一看才知道打印出的是一个同id名的div中的内容,这下才恍然大悟...在分页类中直接给input标签的id取名为page了,而这个page我在其他的div中也使用了。于是将分页类中input的id改为一个很变态的名字。其实这个时候就应该注意到这些问题,如果我们的代码可能会提供给其他人使用,那么命名就很重要了,如果只是在内部(就比如说我这里input这个标签只在类里面使用),那么名字应该尽量取得复杂一些,这样它与用户的命名发生冲突的可能性就很小了。

最后:

代码如下    

1document.getElementById('idname').value;//获取input标签里的值,value; document.getElementById('idname').innerHTML;//获取div里的html内容  

参考资料:

1. document . getElementById 的用法和 DHTML.CHM 的下载地址

今天在网络上查找 document . getElementById 的用法,如下:

A :      语法:

oElement = document . getElementById ( sID )

参数:

sID   : 必选项。字符串 (String) 。

返回值:

oElement   : 对象 (Element) 。

说明:

根据指定的 id 属性值得到对象。返回 id 属性值等于 sID 的第一个对象的引用。假如对应的为一组对象       ,则返回该组对象中的第一个。

如果无符合条件的对象,则返回 null 。

B :有一个例子可以很好的说明:

****************************************************************************

*                                                                           *

*   这个函数中最关键的地方是 document.getElementById ,他是什么呢?        *

*                                                                           *

*   关于 document.getElementById ,是这样的:                              *

*                                                                     *

*   如: document.getElementById('hdrPageHeader_lblTitle')               *

*                                                                     *

*   表示的意思是:获取 ID 为 :hdrPageHeader_lblTitle 的对象                  *

*                                                                           *

* <a >aa</a>                              *

* <a >bb</a>                               *

* <a >cc</a>                              *

* <script language="javascript">                                      *

* <!--                                                                *

* var idtext=document.getElementById('hdrPageHeader_lblTitle')        *

* alert(idtext.innerText)                                             *

* //-->                                                               *

* </script>                                                           *

C :另外还得到一个细节:

① document.getElementById 有时会抓 name 放过了 id ,据说是 IE 的一个 BUG ;

页面中有

<input type="hidden" value="2" />

<select     >

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式