我对下面的代码和通过在www.w3schools.com上更改示例而生成的结果感到困惑。具体地说,当一个链接是某个父元素的子元素时,我不明白为什么当元素是一个<a>
标记时,parent.children返回href
的值?
<!DOCTYPE html>
<html>
<body>
<a href="http://www.example.com/my.jpg"></a>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var c = document.body.children;
var txt = "";
var i;
for (i = 0; i < c.length; i++) {
txt = txt + c[i] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
}
</script>
上面的代码提供了以下结果,第一个结果是我没有预料到的。
http://www.example.com/my.jpg
[object HTMLButtonElement]
[object HTMLParagraphElement]
[object HTMLScriptElement]
因此,没有将<a>
标记作为对象列出,而是给出了href属性的值。
我正在开发blueimp图库https://github.com/blueimp/Gallery的一个实现。用户选择缩略图,并弹出初始化为对应的高分辨率照片的旋转木马灯箱。我正在处理一个iphone特定的问题,并学习代码,因为我一直在前进。
发布于 2018-08-08 07:04:44
你可能想要这个,打印所有孩子的html标签。
<!DOCTYPE html>
<html>
<body>
<a href="http://www.example.com/my.jpg"></a>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var c = document.body.children;
var txt = "";
var i;
for (i = 0; i < c.length; i++) {
txt = txt + c[i].outerHTML + "<br>";
}
document.getElementById("demo").innerText = txt;
}
</script>
</body>
</html>
运行txt = txt + c[i] + "<br>";
时,c[i](<a>,< button/>, ...)
节点将转换为其字符串表示形式并显示
<a>
标签的字符串表示是"http://www.example.com/my.jpg“< button/>
标签的字符串表示是object HTMLButtonElement ...
https://stackoverflow.com/questions/51736514
复制相似问题