2009-08-29 90 views
0

我的DOM技巧很弱,我无法弄清楚为什么一个JavaScript变量被分配了这个对象指针值而不是字符串值本身。Javascript变量被分配为[对象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调用。

当用户点击添加时,萤火虫显示我newTag变量存储为“[object HTMLDivElement]”,但当警报(newTag)JavaScript踢(上面)时,它显示正确的值作为输入文本串??我已经用尽谷歌搜索:-(

是否有可以点我在正确的方向上没有任何大师那里?谢谢。

回答

1

你分配newTag DOM元素属性。我想你弄错了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时,我的意思是说我可以看到正在发布的newTag参数,并发送字符串“[object HTMLDivElement]”,而不是我想要的输入字段的值。 – Darrell 2009-08-29 23:11:11

+0

但是,您的有关将变量分配给DOM Element属性的评论听起来很有趣。即使我不声明一个变量,直接把进入的getElementById函数调用,即: doTagXhr(“add_tag.php”的document.getElementById(“page_tag_add_input”)值) 我得到了同样的问题。 ..嗯?需要更多的思考。还有更多的咖啡。 – Darrell 2009-08-29 23:15:32

+0

你可以将代码发布到你的xhr函数吗?我复制了你正在尝试做的事情,而我并没有体验到你的所作所为。它必须是XHR功能。 – 2009-08-29 23:20:19

相关问题