3

查找了这个问题的几个“答案”,但主要是人们没有将 getElementsByName() 返回的结果视为 NodeList!

编辑:我正在尝试根据被单击的元素隐藏/显示元素。我可以使用 document.getElementById 对其进行硬编码,并且每次我有一个想要隐藏/显示的元素时添加一个。但是,如果我可以检索所有命名为某物的元素并在它们上运行一个循环以隐藏/显示,那将是理想的。然后我可以在编写时用名称标记一个元素,这个循环将无需更改即可工作。下面我的代码只是试图弹出一个带有值的警报以用于测试目的。就目前而言,它始终因空错误而中断。我正在使用和设计 Internet Explorer 9,因为这是公司使用的。

代码:

    <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')[0] 处的对象为空。显然,在它的正下方,它不为空......我是否将 getElementsByName('string')[0].value 与元素的值混淆了?还是它正在检索其他值?

理想情况下,我稍后会添加其他元素,用“EngineeringAreas”标记它们,而不必弄乱隐藏/显示功能。

编辑:这是错误消息:

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
4

2 回答 2

4

给你……似乎:

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

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

<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/

于 2015-10-08T23:07:58.577 回答
1

在和.attributes[1]之间插入。1 指向名为 EngineeringAreas 的元素中的第二个属性,即. 放在后面应该会在警告框中返回值文本“luls” 。然后应该像这样设置警报代码:.getElementsByName('EngineeringAreas').value<h5>value.value.attributes[1]

alert(document.getElementsByName('EngineeringAreas')[0].attributes[1].value);

更多信息:http://www.w3schools.com/jsref/prop_attr_value.asp

于 2015-10-08T23:08:38.853 回答