我的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搜索:-(
那里有没有可以指引我朝正确方向前进的大师?谢谢。
答案 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函数之外还有什么可以重新分配变量。