打印出来的中文是问号的问题通常是由编码问题引起的。为了确保正确地显示中文字符,你可以在 HTML 文件头部添加以下 meta 标签: ` <meta charset="UTF-8">`。这会告诉浏览器以 UTF-8 编码解析页面内容,从而正确显示中文字符。
如果你仅需要打印最低层的标签名,而不包括父元素的标签,你可以使用`event.target`属性来获取点击的实际目标元素。这个属性会返回事件冒泡过程中的当前目标元素。
下面是更新后的示例代码:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>点击元素输出标签名</title>
- <!-- 为了方便展示效果,对所有元素添加了一些样式 -->
- <style>
- * {
- padding: 10px;
- margin: 10px;
- background-color: lightgray;
- }
- </style>
- </head>
- <body>
- <p>这是一个段落</p>
- <button>这是一个按钮</button>
- <a href="#">这是一个链接</a>
- <span>这是一个span元素</span>
- <script>
- // 获取页面中的所有元素
- var elements = document.getElementsByTagName("*");
-
- // 为每个元素添加点击事件
- for (var i = 0; i < elements.length; i++) {
- elements[i].addEventListener("click", function(event) {
- // 停止事件冒泡
- event.stopPropagation();
- // 输出点击的元素的标签名
- console.log("你点击了一个" + event.target.tagName);
- });
- }
- </script>
- </body>
- </html>
复制代码
在上述代码中,我们使用 `event.stopPropagation()` 阻止事件冒泡,以确保只输出最低层的标签名。现在,你可以复制以上代码并在浏览器中运行,点击页面中的任何元素,就会在控制台中看到点击的元素的标签名。同时,请确保您的文件保存为 UTF-8 编码,以确保正确显示中文字符。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。