getElementsByName 不工作
getElementsByName not working
查了几个 "Answers" 这个问题,但主要是人们没有将 getElementsByName() 返回的结果视为 NodeList!
编辑:我正在尝试 hide/show 基于被点击元素的元素。我 可以 使用 document.getElementById 对此进行硬编码,并且每次我有一个我想要 hide/display 的元素时只需添加一个。但是,如果我可以检索所有名为某物的元素并且只是 运行 在它们上循环到 hide/show ,那将是理想的。然后我可以在编写时用名称标记一个元素,这个循环将无需更改即可工作。在我的代码下方,只是尝试弹出一个带有用于测试目的的值的警报。至于现在,它始终会因空错误而中断。我正在为 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" 标记它们,而不必弄乱 hide/show 函数。
编辑:这是错误消息:
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
给你...似乎:
onclick="javascript:
<--- 不需要 - 只需引用函数名称
ShowContentEngineering
需要在window上下文中设置
- 您引用的元素的 "value" 属性不允许值属性 (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>
这是一个有效的 fiddle:https://jsfiddle.net/mu970a8k/
在 .getElementsByName('EngineeringAreas')
和 .value
之间插入 .attributes[1]
。 1 指向名为 EngineeringAreas 的 <h5>
元素中的第二个属性,即 value
。在 .attributes[1]
之后放置 .value
应该 return 警告框中的值文本“luls”。然后应该像这样设置警报代码:
alert(document.getElementsByName('EngineeringAreas')[0].attributes[1].value);
更多信息:http://www.w3schools.com/jsref/prop_attr_value.asp
查了几个 "Answers" 这个问题,但主要是人们没有将 getElementsByName() 返回的结果视为 NodeList!
编辑:我正在尝试 hide/show 基于被点击元素的元素。我 可以 使用 document.getElementById 对此进行硬编码,并且每次我有一个我想要 hide/display 的元素时只需添加一个。但是,如果我可以检索所有名为某物的元素并且只是 运行 在它们上循环到 hide/show ,那将是理想的。然后我可以在编写时用名称标记一个元素,这个循环将无需更改即可工作。在我的代码下方,只是尝试弹出一个带有用于测试目的的值的警报。至于现在,它始终会因空错误而中断。我正在为 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" 标记它们,而不必弄乱 hide/show 函数。
编辑:这是错误消息:
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
给你...似乎:
onclick="javascript:
<--- 不需要 - 只需引用函数名称ShowContentEngineering
需要在window上下文中设置- 您引用的元素的 "value" 属性不允许值属性 (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>
这是一个有效的 fiddle:https://jsfiddle.net/mu970a8k/
在 .getElementsByName('EngineeringAreas')
和 .value
之间插入 .attributes[1]
。 1 指向名为 EngineeringAreas 的 <h5>
元素中的第二个属性,即 value
。在 .attributes[1]
之后放置 .value
应该 return 警告框中的值文本“luls”。然后应该像这样设置警报代码:
alert(document.getElementsByName('EngineeringAreas')[0].attributes[1].value);
更多信息:http://www.w3schools.com/jsref/prop_attr_value.asp