2013-11-23 2 views
0

이 코드의 문제점은 무엇입니까?JavaScript : 라인 당 영역 텍스트 분할

var lines = document.getElementById('id="summoners"').val().split('\n'); 

//I get error above "Cannot call method val of null 

for(var i = 0;i < lines.length;i++) 
{ 
    //other code using lines[i] not necessary to show it 
} 

답변

1

document.getElementById('summoners') 당신이 null 참조 예외를 얻고있는 이유를 요소에 액세스하려는이고하려는 구문은 다음과 같습니다로 이동합니다.

.val()은 jQuery와 같은 방법이지만 원시 HTML 요소에서는 실패합니다. textarea 요소라고 가정하고 document.getElementById('summoners').value과 같은 것을 사용하거나, 또는 jQuery를 사용하고 $('#summoners').val()을 사용해야합니다.

+0

오, 알 겠어! 그게 전부 야! 이제 작동합니다! :) 고마워요! –

+0

lshearer는 .val()이 jQuery 메서드 (다른 여러 프레임 워크에서도 사용 가능할 수 있음)를 지적했다. 귀하의 오류는 null 객체에 대한 메소드 (실제로는 모든 메소드)를 호출한다는 사실에 기인합니다. 그러나 getElementById가 요소를 제대로 리턴 했더라도 .val() 메소드는이 인스턴스에서 작동하지 않을 것입니다 . – beejay

+0

감사합니다! :) –

0

getElementById의 형식이 잘못되었습니다. 메소드 인수에 "id"키를 지정할 필요가 없습니다.

document.getElementById('summoners').val().split('\n'); 
+0

나는 휴식이 필요하다고 생각합니다! :) 감사하지만 지금은 말합니다 "object # 에는 메소드가 없습니다." : O –