Javascript 从div中提取时,变量为null

Javascript 从div中提取时,变量为null,javascript,html,dom,Javascript,Html,Dom,对于这个非常平庸的问题,我提前表示歉意,我肯定我遗漏了一些非常简单的东西。没有进一步的告别 当我试图从HTML中的div中提取一块文本和一个按钮时,我遇到了一个类型错误。div有一个我准确引用的id。出于疏忽,我尝试检索文本,对每个单词应用颜色(在红色、蓝色和绿色之间循环),并用我的彩色文本替换原始文本。它在JSFIDLE中工作得很好,但我无法获取要在espresso中检索的数据-transcribeText为null var transcribeText = document.getEleme

对于这个非常平庸的问题,我提前表示歉意,我肯定我遗漏了一些非常简单的东西。没有进一步的告别

当我试图从HTML中的div中提取一块文本和一个按钮时,我遇到了一个类型错误。div有一个我准确引用的id。出于疏忽,我尝试检索文本,对每个单词应用颜色(在红色、蓝色和绿色之间循环),并用我的彩色文本替换原始文本。它在JSFIDLE中工作得很好,但我无法获取要在espresso中检索的数据-transcribeText为null

var transcribeText = document.getElementById("divideTranscript");
transcribeText.onclick = function() {

var words = document.getElementById("transcriptText");
var textArray = words.innerHTML.split(" ");
var count = 0;
var colorArr = ["red", "blue", "green"];
var newWords = document.createElement("div");

for(var i = 0; i < textArray.length; i++){
    var item = textArray[i];
    var newSpan = document.createElement("span");
    var newText = document.createTextNode(item);
    var dotNode = document.createTextNode(" ");

    newSpan.className = colorArr[count % 3];
    newSpan.id = "word"+i;

    newSpan.appendChild(newText);
    newSpan.appendChild(dotNode);
    count++;


};

words.parentNode.replaceChild(newWords, words);


}
var transcribeText=document.getElementById(“divideTranscript”);
transcribeText.onclick=函数(){
var words=document.getElementById(“文本”);
var textArray=words.innerHTML.split(“”);
var计数=0;
var colorArr=[“红色”、“蓝色”、“绿色”];
var newWords=document.createElement(“div”);
对于(var i=0;i

每年的这个时候你都会清理你的房间
壁橱,掸掉架子上的灰尘,整理你的地板。一旦你采取了
注意灰尘和污垢,数码清洗怎么样?去
通过你所有的文件和计算机可能看起来是一项艰巨的任务,但是
我们找到了让这个过程相当轻松的方法。

改造 成绩单
您的问题是javascript在HTML存在之前运行,因此无法获取任何ID。有几种方法可以解决这个问题。首先是我最喜欢的:

window.onload = function name() {
//code to be excuted
}
加载HTML后将调用该函数
body.onload=function name()
也可以使用

第二种方法(没有双关语,哈哈)是把script标签放在body标签的末尾

<body>
<script></script>
</body>


就我个人而言,我更经常使用第一个模板,因为我有一个我非常喜欢使用的模板,我不喜欢到处移动标签。那就是我,只要对你有用!希望这有帮助

transcribeText为null,因为DOM中不存在该元素。这是我的按钮,该元素确实存在。其ID必须为“transcribeText”。请发布您的HTML标记。您的代码何时执行?它是否等待加载文档以确保divideTranscript实际位于DOM中?我更新了代码以显示HTML,并修改了按钮事件处理程序。我的控制台仍然告诉我变量词是空的谢谢!我知道这是一件相对简单的事情,这就解释了为什么我可以让它在JSFIDLE中相对容易地工作,它会自动默认为onload。是的,我在前一段时间遇到了问题,当时我把body标签作为一个对象,它一直在说null。经过研究,我找到了这些解决方案。你明白这个笑话的意思了吗?他们说他们很幽默。。除息的
<body>
<script></script>
</body>