Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用getElementsByTagName时未定义Textarea值_Javascript - Fatal编程技术网

Javascript 使用getElementsByTagName时未定义Textarea值

Javascript 使用getElementsByTagName时未定义Textarea值,javascript,Javascript,我陷入了一个非常简单的事情,我需要做,我无法解释为什么会发生这种情况。我有一个textarea,没有id或class或name,所以用js选择它的唯一方法是使用getElementsByTagName。这是我的HTML中唯一的textarea,因此很明显可以使用以下内容: var theSrc = document.getElementsByTagName('textarea')[0].value; 但是,当向SRC发出警报时,我总是得到未定义的代码。你知道为什么会这样吗 演示如下:这是因为您

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

var theSrc = document.getElementsByTagName('textarea')[0].value;
但是,当向SRC发出警报时,我总是得到未定义的代码。你知道为什么会这样吗


演示如下:

这是因为您在首次读取脚本(位于页面头部)时读取了值,甚至在DOM准备就绪之前。读取函数中的值:

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

要么在正文后编写js,要么使用

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

由于在head中是在body之前加载的,所以变量“theSrc”不知道文本区域

这是编写JavaScript的问题,在body标记内部编写时效果良好

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

--------文本区号
var theSrc=document.getElementsByTagName('textarea')[0]。值;

现在它可以工作了。这是因为文档优先执行。

感谢您的解释。