Javascript 未为DIV显示HTML

Javascript 未为DIV显示HTML,javascript,html,jquery,Javascript,Html,Jquery,我有一些带有DIV和javascript的HTML代码: 这里有什么吗 setText(“我的文本1”); setText(“我的文本2”); 这是我的setText函数: 函数setText(txt){ console.log(txt); $(“#textcomeshere”).html(txt); } 问题是,div中没有显示任何内容 我还尝试将$(document).ready()添加到该函数中,但在加载文档之前调用了第一个setText,因此无法工作。如果在没有document.r

我有一些带有DIV和javascript的HTML代码:


这里有什么吗
setText(“我的文本1

”); setText(“我的文本2

”);
这是我的
setText
函数:

函数setText(txt){
console.log(txt);
$(“#textcomeshere”).html(txt);
}
问题是,div中没有显示任何内容

我还尝试将
$(document).ready()
添加到该函数中,但在加载文档之前调用了第一个
setText
,因此无法工作。如果在没有document.ready的情况下使用它,则在
#textcomeshere DIV
存在之前调用第一个
setText
,因此它不起作用


我需要保持代码中的顺序不变(因为有更多的条件),所以我不能将setText调用移动到其他位置,也不能将textcomeshere DIV移动到其他位置,因为它在那里有它的位置


有什么解决方法吗?

请查看此代码段:


函数setText(txt){
console.log(txt);
$(“#textcomeshere”).html(txt);
}
这里有什么吗
setText(“我的文本1

”); setText(“我的文本2

”);
我认为在jQuery CDN之后在head中调用JS文件将解决这个问题…

document.getElementById(“textcomeshere”).innerHTML=“在此处更新文本”

这里有什么吗
html


项目11
这里有什么吗
$(文档).ready(函数(){
setText(“p”,“我的文本1”);
});
$(文档).ready(函数(){
setText(“p”,“我的文本2”);
});
Javascript文件

  /**
 * 
 * text.js
 */

    let myDiv = document.getElementById("textcomeshere"),
        myTag, myTextNode;
    
    function setText(tag, txt) {
        myTag = document.createElement(tag); // create tag
        console.log(myTag); // result <p></p> in case tag was p
        myTextNode = document.createTextNode(txt); // create text
        console.log(myTextNode); // result will be text 
        myTag.appendChild(myTextNode) // appending the textNode to the tag
        myDiv.appendChild(myTag); // appending the tag with it's text content to the div
        console.log(myDiv); // div now has p tag and text inside of it
    }
/**
* 
*text.js
*/
让myDiv=document.getElementById(“textcomeshere”),
myTag,myTextNode;
函数setText(标记,txt){
myTag=document.createElement(标记);//创建标记
console.log(myTag);//如果tag是p,则结果

myTextNode=document.createTextNode(txt);//创建文本 console.log(myTextNode);//结果将是文本 appendChild(myTextNode)//将textNode追加到标记 appendChild(myTag);//将带有文本内容的标记追加到div console.log(myDiv);//现在div中有p标记和文本 }

唯一对我有帮助的是将所有setText调用移到代码开头的textcomeshere div和jquery函数之后。这样它可以工作,但不是一个理想的解决方案,如果我需要在显示其他div之前调用setText等。

您是否正确地将JavaScript文件链接到HTML中?“我需要保持代码的顺序不变(因为有更多的条件),所以我无法将setText调用移动到其他位置”-这似乎很奇怪,您可能需要重新考虑代码的布局。似乎您没有添加jquery,我添加了jquery,只是我的代码中没有提到。如果我将setText函数放在代码的开头,它将找不到我的DIV id。如果我将该函数放在代码的末尾,则会在函数存在之前调用setText。因此,这些解决方案都不起作用。这里的div TeCuMeSediv必须在屏幕中间,在其他div之间,由于某种原因,这在我的代码中没有显示,但是我用同样的方式。我将详细调查您编写的原因—内部的first settext()调用无法更改内容,因为它是在它之后定义的。但是如何解决它呢?不在我的代码中工作,这与jquery使用jsdocument是一样的。write不会在我想要的DIV中写入文本。对不起,我更新了我的答案这就是你要找的吗?我还对该方法进行了一些调整。实际上,如果您对每个setText调用$(document)都进行设置,这似乎对我很有效。请阅读,但是,这对于在div中显示文本来说似乎有些过分。但至少这是一个有效的示例,因此感谢您的帮助,我对此表示感谢。现在,我解决了这个问题,在代码开头将所有setText调用移到textcomeshere div和jquery函数之后,以避免对每个元素使用documentready,很高兴听到这一点。这没有帮助。我需要从不同的地方多次调用setText。我已经解决了这个问题-我把所有调用放在div之后,因为它们是在尚未创建div时调用的,所以无法工作。我没有更好的解决方案,但现在它起作用了。
  /**
 * 
 * text.js
 */

    let myDiv = document.getElementById("textcomeshere"),
        myTag, myTextNode;
    
    function setText(tag, txt) {
        myTag = document.createElement(tag); // create tag
        console.log(myTag); // result <p></p> in case tag was p
        myTextNode = document.createTextNode(txt); // create text
        console.log(myTextNode); // result will be text 
        myTag.appendChild(myTextNode) // appending the textNode to the tag
        myDiv.appendChild(myTag); // appending the tag with it's text content to the div
        console.log(myDiv); // div now has p tag and text inside of it
    }