我正在学习这些东西并试图理解它,所以我使用它而不是innerhtml。
我的代码:
<script>
function load() {
"use strict";
var t = document.createElement("table"),
tb = document.createElement("tbody"),
tr = document.createElement("tr"),
td = document.createElement("td");
var b = document.createElement("b");
b.appendChild(document.createTextNode(" name!"));
td.appendChild(document.createTextNode("Hello"));
td.appendChild(b);
t.style.width = "100%";
t.style.borderCollapse = 'collapse';
t.border=1;
// note the reverse order of adding child
tr.appendChild(td);
tb.appendChild(tr);
t.appendChild(tb);
// more code to populate table rows and cells
document.getElementById("theBlah").appendChild(t);
alert(t.innerHTML);
}
</script>
</head>
<body onload="load()">
问题是,onload()
不显示<table>
标签,它显示来自 <tbody>
相反...知道为什么吗?
最后,在这段代码中:
var t = document.createElement("table"),
tb = document.createElement("tbody"),
tr = document.createElement("tr"),
td = document.createElement("td");
即使我只对 t 使用 Var 关键字,而不对其他关键字使用 Var 关键字,为什么即使“use strict”打开,它也不提示?事实上,如果我在“tb,”tr”,“td”前面添加一个“var”然后它会抛出一个错误...... 谢谢!
最佳答案
1) innerHTML 就是这样。它是内部
。它不包含元素本身的 HTML,而是包含该元素内的所有 html。还有一个名为outerHTML 的属性,但它不包含在Firefox 中。获取outerHTML 的唯一跨浏览器方法是将节点包装在新的父节点中并获取该节点innerHTML。你不能只获取当前父元素的innerHTML(你必须创建一个新的父元素),除非你确定该元素没有同级元素,因为如果你这样做,同级元素将被包含在内。
2) 您使用逗号来分隔变量装饰。这与使用分号并在每行上放置 var
相同。
关于Javascript:几个 JS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868776/