简体   繁体   English

是否可以使用Javascript中的DOM将数据附加到html元素中?

[英]Is it possible to append data into a html element using DOM in Javascript?

I have looked for duplicate questions, however many refer to adding data to XML please forgive me if I have missed something here but I need some help 我一直在寻找重复的问题,但是很多人都提到将数据添加到XML中,如果我在这里错过了一些事情,请原谅我,但我需要一些帮助

so far I have this: 到目前为止,我有这个:

html page HTML页面

<!DOCTYPE html>
<html>
<head>
<title>Template</title>
<script type="text/javascript" src="script/controlpanelAdmin.js"></script>
<script type="text/javascript" src="script/controlpanelModerator.js"></script>
<script type="text/javascript" src="script/jquery-1.12.0.js"></script>
<link rel="stylesheet" href="script/css.css" />
</head>
<body>
<fieldset id="control_panel">
<legend>Control Panel</legend>
</fieldset>

<p id="content"> Content </p>

</body>
</html>

controlpanelAdmin.js controlpanelAdmin.js

window.onload = function() {

var controlpanel = document.getElementById("control_panel");
var para = document.createElement("p");
var att = document.createAttribute("admin");
var br = document.createElement("br");
var txt = document.createTextNode("Admin Control Panel");



controlpanel.appendChild(para);
para.setAttribute("id", att);
para.appendChild(txt);
para.appendChild(br);
}

controlpanelModerator.js controlpanelModerator.js

window.onload = function() {

var controlpanel = document.getElementById("control_panel");
var para = document.createElement("p");
var att = document.createAttribute("mod");
var br = document.createElement("br");
var txt = document.createTextNode("Moderator Control Panel");



controlpanel.appendChild(para);
para.setAttribute("id", att);
para.appendChild(txt);
para.appendChild(br);
}

When the page loads, 'Admin Control Panel' is written into the fieldset tag but is then replaced by: 'Moderator Control Panel' 页面加载后,“管理控制面板”被写入到字段集标记中,但随后被替换为:“主持人控制面板”

I cannot for the life of me think how to append both lines (and maybe other data as well) into one element 我一生都无法想到如何将这两行(可能还有其他数据)附加到一个元素中

When the page loads, 'Admin Control Panel' is written into the fieldset tag but is then replaced by: 'Moderator Control Panel' 页面加载后,“管理控制面板”被写入到字段集标记中,但随后被替换为:“主持人控制面板”

That can't happen. 那不可能 Admin Control Panel should never appear in the page. 管理员控制面板不应出现在页面中。

  1. script/controlpanelAdmin.js loads. script/controlpanelAdmin.js加载。 It causes a value to be assigned to window.onload . 它导致将一个值分配给window.onload
  2. script/controlpanelModerator.js loads. script/controlpanelModerator.js加载。 It causes that value to be overwritten with a new one. 它导致该值被新的值覆盖
  3. The page finishes loading 页面加载完成
  4. The load event fires 加载事件触发
  5. The function defined in script/controlpanelModerator.js is called script/controlpanelModerator.js定义的函数称为

Don't assign values to window.onload . 不要为window.onload赋值。 Use addEventListener instead. 请改用addEventListener

addEventListener("load", function () { ... });

You've got two onload functions competing. 您有两个onload函数竞争。 Can you merge them into one function? 您可以将它们合并为一个功能吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM