10

我坚持了一件我需要做的非常简单的事情,我无法解释为什么会发生这种情况。我有一个textarea没有idclassname的,所以用js选择它的唯一方法是使用getElementsByTagName。它是textarea我的 HTML 中唯一的,因此使用以下内容非常明显:

var theSrc = document.getElementsByTagName('textarea')[0].value;

但是,当提醒我时,theSrc我总是得到undefined. 任何想法为什么会发生这种情况?

这是演示:http: //jsfiddle.net/D3zBU/

4

3 回答 3

9

那是因为您在第一次读取脚本(位于页面的 HEAD 中)时读取了该值,甚至在 DOM 准备好之前。读取函数中的值:

function displayValue() {
    var theSrc = document.getElementsByTagName('textarea')[0].value;
    alert(theSrc);
}
于 2013-03-19T10:08:15.283 回答
1

在正文之后编写您的 js 或使用

$().ready(function(){
    //code
});

因为 head 在 body 之前加载,所以变量“theSrc”不知道文本区域

于 2013-03-19T10:14:37.527 回答
1

这是您编写 JavaScript 的问题,当您在 body 标记内编写时它可以正常工作。

<body>
--------textarea code
<script>
var theSrc = document.getElementsByTagName('textarea')[0].value;
</script>
</body>

现在它将起作用。那是因为文档优先执行。

于 2013-03-19T10:15:47.083 回答