使用getElementsByTagName时,未定义Textarea值

时间:2013-03-19 10:06:15

标签: javascript

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

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

然而,在提醒theSrc时,我总是得到undefined。任何想法为什么会发生这种情况?

以下是演示:http://jsfiddle.net/D3zBU/

3 个答案:

答案 0 :(得分:8)

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

function displayValue() {
    var theSrc = document.getElementsByTagName('textarea')[0].value;
    alert(theSrc);
}

答案 1 :(得分:1)

在身体后面写下你的js或使用

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

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

答案 2 :(得分:1)

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

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

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