내 코드 :getElementByName이 유형 오류를 반환합니까?
var isSomethingChecked = (document.getElementByName("koalaCheck").checked ||
document.getElementByName("kangarooCheck").checked);
왜이 코드는 "유형의 오류"라는 예외가 발생합니까?
내 코드 :getElementByName이 유형 오류를 반환합니까?
var isSomethingChecked = (document.getElementByName("koalaCheck").checked ||
document.getElementByName("kangarooCheck").checked);
왜이 코드는 "유형의 오류"라는 예외가 발생합니까?
getElementByName
이라는 기능이 없습니다. 필요한 것은 getElementsByName
이고 그 이름을 가진 모든 요소의 배열을 리턴합니다. 그래서 당신은 사용할 수 있습니다
var isSomethingChecked = (document.getElementsByName("koalaCheck")[0].checked ||
document.getElementsByName("kangarooCheck")[0].checked);
올바른 방법은 document.getElementsByName()
이기 때문입니다. 당신은 s를 놓쳤습니다.
보기 documentation.
요소 당 각 선택된 상태를 검사하지 않으려는 경우 (이 메서드는 배열을 반환 함) .. 나는 document.getElementById()
을 사용할 것입니다.하지만 html을 보지 않으면됩니다.
getElementsByName
는 지정된 이름을 가지는 모든 요소의 배열을 반환합니다. 당신과 같이 반환 된 배열에서 특정 요소를 getElementById
기능을 사용하거나 지정해야합니다 중 하나
var isSomethingChecked = (document.getElementsByName("koalaCheck")[0].checked || document.getElementsByName("kangarooCheck")[0].checked);
당신은 "입력 오류"얻을 당신이 배열 대신 특정 요소의 체크 여부를 확인하기 때문에.
getElementByName이 아마도 null을 반환하기 때문입니다. – zzzzBov
예기치 않게 null 또는 정의되지 않은 값에 액세스하려고하면 TypeError가 가장 일반적으로 발생합니다. 생성자가 아닌 값에서 연산자를 사용하거나 너무 많은 인수를 내장 함수에 전달하는 경우 TypeError가 throw 될 수 있습니다. – 999k
@zzzzBov 또는 메서드가 존재하지 않기 때문에 ... – Ian