首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getElementsByName不工作

getElementsByName不工作
EN

Stack Overflow用户
提问于 2015-10-08 22:35:35
回答 2查看 3.6K关注 0票数 3

查找了这个问题的几个“答案”,但大多数人没有将getElementsByName()返回的结果作为一个NodeList处理!

编辑:我试图根据被点击的元素来隐藏/显示元素。我可以使用document.getElementById对此进行硬编码,每次我有一个要隐藏/显示的元素时,只需添加一个。但是,如果我能够检索所有命名为某样东西的元素,并对它们运行一个循环来隐藏/显示,这将是非常理想的。然后,我只需在编写时标记一个带有名称的元素,这个循环就可以正常工作了。下面,我的代码只是试图弹出一个值为测试目的的警告。就目前而言,它始终以空错误中断。我正在使用和设计互联网浏览器9,因为这是公司使用的。

代码:

代码语言:javascript
复制
    <input type="radio" name="Area" value="Engineering" id="EngineeringCheck" onclick="javascript: ShowContentEngineering();" />Engineering

<script type="text/javascript">
    function ShowContentEngineering() {
        alert(document.getElementsByName('EngineeringAreas')[0].value)
        document.getElementById('InformationBlock').style.display = 'block';
}
</script>

<h5 name="EngineeringAreas" value="luls"> WHAT THE HECK </h5>

上面的代码中断,表示getElementsByName('EngineeringAreas')处的对象为null。很明显,就在它下面,它不是空的.我是不是把getElementsByName('string').value和元素的值搞混了?还是正在检索其他值?

理想情况下,我会在以后添加其他元素,用"EngineeringAreas“标记它们,而不必处理隐藏/显示函数。

编辑:这是错误消息:

代码语言:javascript
复制
Unhandled exception at line 53, column 9 in http://localhost:57264/Home/Index

0x800a138f - Microsoft JScript runtime error: Unable to get value of the property 'value': object is null or undefined
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-08 23:07:58

给你..。似乎:

  1. onclick="javascript: <--没有必要--只需引用函数名
  2. 需要在窗口上下文中设置ShowContentEngineering
  3. 引用不允许值属性的元素的" value“属性(h5)

我让它工作,而不是抓住innerHTML的h5代码

代码语言:javascript
复制
<input type="radio" name="Area" value="Engineering" id="EngineeringCheck" onclick="ShowContentEngineering();" />Engineering

<h5 name="EngineeringAreas"> WHAT THE HECK </h5>
<script>
    window.ShowContentEngineering = function() {
        alert(document.getElementsByName('EngineeringAreas')[0].innerHTML)
        document.getElementById('InformationBlock').style.display = 'block';
    }
</script>

这是一个有用的小提琴:https://jsfiddle.net/mu970a8k/

票数 4
EN

Stack Overflow用户

发布于 2015-10-08 23:08:38

.attributes[1].getElementsByName('EngineeringAreas')之间插入.value。1指向<h5>元素EngineeringAreas中的第二个属性,即value。将.value放在.attributes[1]之后应该返回警告框中的值文本“luls”。然后,应该按照以下方式设置警报代码:

代码语言:javascript
复制
alert(document.getElementsByName('EngineeringAreas')[0].attributes[1].value);

详细信息value.asp

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33027062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档