javascript中的.push()命令不起作用?

时间:2016-08-26 19:54:00

标签: javascript html

当我尝试将url推入数组然后window.open()数组中的所有url时,我得到一个null错误。我相信这是因为url没有正确放置在数组中以启动。我究竟做错了什么?感谢。

<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
    <form>
        Series Name:
        <input type="text"
            name="series1name"
            id="seriesname"/>
        <br/>
        Series Link:
        <input type="text"
            name="series1link"
            id="serieslink"/>
    </form>
    <div>
        <button onclick="AddSeries()">Add A New Series </button>
    </div>
    <div>
        <button onclick="OpenSeries()">Open Incomplete Series </button>
    </div>
</body>
<script type="text/javascript">

        var urlArray = [];

    function AddSeries() {

        var url = document.getElementById('serieslink');    
        urlArray.push(url);
    }

    function OpenSeries() {
        for (url in urlArray) {
       alert(url.constructor === Array);
           window.open(url, '_blank');
        }
    }
</script>
</html>

对不起,如果错误很明显,我对编码有点新意,所以我确定这段代码无论如何都不是完美的。 提前谢谢。

谢谢大家,两个回复的组合让我的代码以我想要的方式工作。

1 个答案:

答案 0 :(得分:0)

获取文本框的值,而不是文本框

您需要添加文本框的值,而不是文本框本身

push!

运行var url = document.getElementById('serieslink').value; 时,返回值是具有许多属性和方法的对象。你可以read about Element objects here

使用正确的for循环

@Juhana指出

document.getElementById()循环将为您提供关联数组或对象的键。如果数组是非关联的(所有数组都在JavaScript中),则使用for in循环。 You can read about it here

将脚本标记放入正文

@Xufox指出

for of标记位于<script>标记内。建议将脚本放在正文末尾以减少加载时间。