在window.open.href中插入声明的变量(var)

时间:2013-11-19 12:27:43

标签: javascript jquery

大家好我刚学习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>

有人可以帮助我让第二个代码与第一个代码一样工作。提前谢谢。

6 个答案:

答案 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节点是愚蠢的。

如果#txtURLinput,您可以执行以下操作:

window.location.href = document.getElementById("txtURL").value;

如果是TextNode,您可以执行以下操作:

window.location.href = document.getElementById("txtURL").nodeValue;

但这种情况越来越好。