2009-08-29 4 views
0

DOM 기술이 약하고 왜 자바 스크립트 변수에 문자열 값 자체가 아니라이 객체 포인터 값이 할당되어 있는지 확인할 수 없습니다.Javascript 변수가 문자열이 아닌 [object HTMLDivElement]로 할당 되었습니까?

짧은 이야기는 좀 화면 데이터에 대한 AJAX 호출을하고 있다는 것입니다 그것은 HTML을 반환하고 다음으로 div.innerHTML을 채 웁니다

<input id="page_tag_add_input"></input>'; 

    <span class="page_tag_add"><a href="#" onclick="var newTag = document.getElementById('page_tag_add_input').value; doTagXhr('add_tag.php', newTag); alert(newTag);">Add</a></span> 

doTagXhr 함수는 YUI의 연결 관리자 AJAX 호출입니다.

추가 버튼을 클릭하면 newbag 변수가 "[object HTMLDivElement]"로 저장되지만 alert (newTag) 자바 스크립트가 (위)에서 실행되면 값이 입력 텍스트로 올바르게 표시됩니다 끈?? 나는 구글 :-(

를 검색 소진 한 있습니까 올바른 방향으로 날 지점 수 있습니다 거기에 어떤 전문가는? 감사합니다. 당신은 DOM 요소 속성에 newTag을 할당하고

답변

1

는. 난 당신이했습니다가 생각 파이어 버그 (Firebug)가보고 한 내용과 틀린 점은 그 코드가 분명히 요소 참조가 아니라는 것을 의미한다. xhr 함수 (코드를 붙여 넣지 않은 코드)에서 조작하지 않으면 문자열이다.

편집 :

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 
<script> 
    function doTagXhr(page, input) { 
    window.input = input; 
    $.ajax({ 
     url:page, 
     type:'POST', 
     data:input 
    }); 
    } 
</script> 
<input id="page_tag_add_input" value="test"> 

    <span class="page_tag_add"><a href="#" onclick="var newTag = document.getElementById('page_tag_add_input').value; doTagXhr('regex.php', newTag); alert(newTag);">Add</a></span> 

이것은 항상 문자열. 다른 변수가 변수를 재 할당하는 xhr 함수 이외의 다른 것일 수 있습니다.

+0

신속한 답변을 보내 주셔서 감사합니다. 죄송합니다. 내가 잘못 말한 것일 수도 있습니다. Firebug를 참조 할 때, 나는 POSTed되고있는 newTag param을 볼 수 있고, 내가 원하는 입력 필드의 값보다는 "[object HTMLDivElement]"라는 문자열을 보내고 있다고 말할 수 있습니다. – Darrell

+0

그래, DOM 요소 속성에 변수를 지정하는 것에 대한 귀하의 의견은 재미있을 것 같습니다. 변수를 선언하고 getElementById를 직접 함수 호출에 넣지 않더라도 : doTagXhr ('add_tag.php', document.getElementById ('page_tag_add_input'). value) 같은 문제가 발생합니다. .. 음? 더 많은 숙고 필요. 또한 더 많은 커피. – Darrell

+0

xhr 함수에 코드를 게시 할 수 있습니까? 나는 당신이하려고하는 것을 복제했고 나는 당신이 무엇인지를 경험하지 못했습니다. XHR 기능이 있어야합니다. –

관련 문제