Javascript变量被指定为[object HTMLDivElement]而不是string?

时间:2009-08-29 23:02:39

标签: javascript dom

我的DOM技能很弱,我无法弄清楚为什么为javascript变量赋予此对象指针值而不是字符串值本身。

简短的故事是我正在为一些屏幕数据进行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调用。

当用户点击添加时,firebug告诉我newTag变量存储为“[object HTMLDivElement]”,但当警报(newTag)javascript启动时(上图),它会正确显示值作为输入文本字符串??我已经用尽Google搜索:-(

那里有没有可以指引我朝正确方向前进的大师?谢谢。

1 个答案:

答案 0 :(得分:1)

您正在将newTag分配给DOM Element属性。我认为你错误地认为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函数之外还有什么可以重新分配变量。