大家好我刚学习javascript和asp.net。 我想在window.location.href中插入/附加一个声明的var,我有这个代码,它的工作方式与我想的一样。
<script type = "text/javascript">
function myFunction() {
//var siteURL = document.getElementByID("txtURL");
window.location.href = "http://www.google.com";
}
</script>
通过'onclick'事件调用/触发此功能。但当我将代码更改为:
<script type = "text/javascript">
function myFunction() {
var siteURL = document.getElementByID("txtURL");
window.location.href = siteURL;
}
</script>
有人可以帮助我让第二个代码与第一个代码一样工作。提前谢谢。
答案 0 :(得分:2)
首先,没有document.getElementByID
功能。它是document.getElementById
(最后一个字符不同)。
此函数将返回对象以获得它的值,您应该使用innerHTML
(或value
如果它的输入字段)属性,如此var siteURL = document.getElementByID("txtURL").innerHTML;
,然后将此变量传递给{{1 }}
答案 1 :(得分:1)
你的问题在于getElementByID
。首先,你做了一个拼写错误,最后一个字母应该是小写getElementById
,其次,这会返回一个 Node ,你可能希望它的值
var siteURL = document.getElementById("txtURL").value;
答案 2 :(得分:1)
首先,JavaScript是区分大小写的语言,因此按ID选择元素的正确方法名称为document.getElementById()
。
接下来,如果ID为"txtURL"
的元素是表单字段,例如<input>
或<select>
您应该使用siteURL.value
获取其值。否则,如果它是任何其他文本容器,例如您可以使用<div>
作为文字的<span>
或siteURL.innerHTML
或{{1}}。
答案 3 :(得分:1)
var siteURL = document.getElementById("txtURL");
//siteURL is just a reference to the text field, not it's value
你的变量siteURL
在这个阶段只是一个dom对象,你需要调用.value
属性来获取它作为href使用的值。和JavaScript区分大小写,因此.getElementById()
不是.getElementByID()
。下面的代码应该可以正常工作
<script type = "text/javascript">
function myFunction() {
var siteURL = document.getElementById("txtURL").value; //add .value here
window.location.href = siteURL;
}
</script>
答案 4 :(得分:0)
document.getElementById()
返回一个DOM对象,而不是字符串。
如果你的url存储在ID为“txtURL”的节点中,你必须自己访问信息,可能是作为节点的内容存储:via .innerHTML或jQuery中的.html()
答案 5 :(得分:0)
document.getElementByID("txtURL")
返回DOM节点。 window.location.href
是一个类似String
的对象。给它一个DOM节点是愚蠢的。
如果#txtURL
是input
,您可以执行以下操作:
window.location.href = document.getElementById("txtURL").value;
如果是TextNode,您可以执行以下操作:
window.location.href = document.getElementById("txtURL").nodeValue;
但这种情况越来越好。