如何向a<;部门>;元素使用JavaScript?
我用Google和StackOverflow到处搜索,但我似乎没有找到答案。我想在元素中写入文本,使用,然后清除元素,并在其中写入更多文本。我正在做一个简单的文字冒险游戏 这就是我想做的:如何向a<;部门>;元素使用JavaScript?,javascript,html,Javascript,Html,我用Google和StackOverflow到处搜索,但我似乎没有找到答案。我想在元素中写入文本,使用,然后清除元素,并在其中写入更多文本。我正在做一个简单的文字冒险游戏 这就是我想做的: <DOCTYPE!HTML> <body> <div class="gamebox"> <!-- I want to write in this div element --> </div&
<DOCTYPE!HTML>
<body>
<div class="gamebox">
<!-- I want to write in this div element -->
</div>
</body>
作为JavaScript的新用户,我如何能够在
div
元素游戏盒中编写代码?不幸的是,我的JavaScript技能不是很好,如果您能耐心地解释代码中发生了什么,那就太好了。您可以使用querySelector
来获取与任何CSS选择器匹配的第一个元素的引用。在您的情况下,类选择器:
var div = document.querySelector(".gamebox");
querySelector
适用于所有现代浏览器,包括IE8。如果未找到任何匹配元素,则返回null
。您还可以使用querySelectorAll
获取所有匹配元素的列表:
var list = document.querySelectorAll(".gamebox");
然后使用基于0的索引访问该列表中的元素(list[0]
,list[1]
,等等);列表的长度可从list.length
获得
然后,您可以将HTML字符串分配给innerHTML
:
div.innerHTML = "This is the text, <strong>markup</strong> works too.";
这些功能可以在中找到。许多元素现在也在中介绍(特别是)。您可以使用
querySelector
获取与任何CSS选择器匹配的第一个元素的引用。在您的情况下,类选择器:
var div = document.querySelector(".gamebox");
querySelector
适用于所有现代浏览器,包括IE8。如果未找到任何匹配元素,则返回null
。您还可以使用querySelectorAll
获取所有匹配元素的列表:
var list = document.querySelectorAll(".gamebox");
然后使用基于0的索引访问该列表中的元素(list[0]
,list[1]
,等等);列表的长度可从list.length
获得
然后,您可以将HTML字符串分配给innerHTML
:
div.innerHTML = "This is the text, <strong>markup</strong> works too.";
这些功能可以在中找到。其中的许多内容现在也在中介绍(特别是)。如前面提到的getElementsByClassName更快。重要的是要知道,当您使用此命令时,将返回一个数组,其中包含要到达的元素。您可以指定其索引行[0],[1]
var gameBox = document.getElementsByClassName('gamebox')[0];
这是你怎么做的
//returns array with elements
var gameBox = document.getElementsByClassName('gamebox');
//inner HTML (overwrites fsd) this can be used if you direcly want to write in the div
gameBox[0].innerHTML ='<p>the new test</p>';
//Appending when you want to add extra content
//create new element <p>
var newP = document.createElement('p');
//create a new TextNode
var newText = document.createTextNode("i'm a new text");
//append textNode to the new element
newP.appendChild(newText);
//append to the DOM
gameBox[0].appendChild(newP);
//返回包含元素的数组
var gameBox=document.getElementsByClassName('gameBox');
//内部HTML(覆盖fsd)如果您直接想在div中写入,可以使用此选项
gameBox[0].innerHTML='新测试;
//要添加额外内容时追加
//创建新元素
var newP=document.createElement('p');
//创建一个新的TextNode
var newText=document.createTextNode(“我是一个新文本”);
//将textNode附加到新元素
newP.appendChild(newText);
//附加到DOM
gameBox[0]。appendChild(newP);
像前面提到的GetElementsByCassName一样,速度更快。重要的是要知道,当您使用此命令时,将返回一个数组,其中包含要到达的元素。您可以指定其索引行[0],[1]
var gameBox = document.getElementsByClassName('gamebox')[0];
这是你怎么做的
//returns array with elements
var gameBox = document.getElementsByClassName('gamebox');
//inner HTML (overwrites fsd) this can be used if you direcly want to write in the div
gameBox[0].innerHTML ='<p>the new test</p>';
//Appending when you want to add extra content
//create new element <p>
var newP = document.createElement('p');
//create a new TextNode
var newText = document.createTextNode("i'm a new text");
//append textNode to the new element
newP.appendChild(newText);
//append to the DOM
gameBox[0].appendChild(newP);
//返回包含元素的数组
var gameBox=document.getElementsByClassName('gameBox');
//内部HTML(覆盖fsd)如果您直接想在div中写入,可以使用此选项
gameBox[0].innerHTML='新测试;
//要添加额外内容时追加
//创建新元素
var newP=document.createElement('p');
//创建一个新的TextNode
var newText=document.createTextNode(“我是一个新文本”);
//将textNode附加到新元素
newP.appendChild(newText);
//附加到DOM
gameBox[0]。appendChild(newP);
选择具有的单个元素或具有的集合 这取决于你想做什么:
写入div或元素并将其写入div。选择单个元素或集合 这取决于你想做什么:
写入div或元素并将其写入div。@mshsayem我相信他想向div写入文本,而不是创建div。@JordanFitz是的,我想在div内写入文本。我该如何实现?我才八年级,我没有任何网络开发的专业经验,所以如果你能花点时间解释一下发生了什么,那就太好了。据我所知,document.createElement(“div”)在document.html上创建了一个新的html元素div,对吗?请查看我下面的答案。尽量不要使用那些DOM节点方法来构建它,而是使用字符串构建,html字符串构建使用更少的内存。@mshsayem我相信他想向div写入文本,而不是创建div。@JordanFitz Yes,我想在div中写文本。我该如何完成?我才八年级,我没有任何网络开发的专业经验,所以如果你能花点时间解释一下发生了什么,那就太好了。据我所知,document.createElement(“div”)在document.html上创建了一个新的html元素div,对吗?请查看我下面的答案。尽量不要使用那些DOM节点方法来构建它,而是使用字符串构建,html字符串构建使用更少的内存。谢谢,我想我现在明白了。我自己来试试。从我收集的资料来看,
。querySelector
/。querySelector all
对于更复杂的选择尤其有用,例如“.gamebox.genderantclass”
和类似的选择。在单个类选择中,它似乎比getElementsByClassName
慢很多(显示慢93%)。缺点是IE8和更低版本似乎确实不支持getElementsByClassName
();(@DaniëlKnippers:虽然这是一个相当大的绝对性能增量,每秒超过75万次查询,但我非常怀疑这是否有任何真实的、可感知的差异。当然,QS/QSA的使用率更高