查找了幾個這個問題的「答案」,但它主要是人們沒有將getElementsByName()作爲NodeList返回的結果進行處理!getElementsByName不起作用
編輯:我試圖根據被點擊的元素來隱藏/顯示元素。我可能硬編碼這使用document.getElementById,只是每次添加一個我有我想隱藏/顯示的元素。但是如果我能夠檢索所有名爲something的元素並且只是對它們運行一個循環來隱藏/顯示,那將是理想的。然後,我可以在寫入時標記具有名稱的元素,並且此循環可以不加改變地工作。在我的代碼下面,只是試圖彈出一個包含該值的警報用於測試目的。至於現在,它始終打破空錯誤。我正在使用和設計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 =「ShowContentEngineering( );'不'onclick =「javascript:ShowContentEngineering();' – j08691
你試過這樣的瀏覽器?我在Mac上使用Firefox 41.0.1嘗試了它,並且它按預期工作(它警告未定義,但是這是因爲標題沒有值,但如果我將值更改爲id這兩個地方,我會得到luls)。 – blm
應該顯示的警報框是什麼 - luls或是什麼? –