
高效批量为网页文本标签添加title属性及鼠标悬停放大字体效果
网页开发中,常需批量操作页面元素,例如为所有包含文本内容的标签添加title属性,或在鼠标悬停时改变字体大小。本文讲解如何高效地为网页中所有包含文本内容的标签添加title属性。
问题: 如何高效地为网页所有非空文本标签添加title属性,并使用文本内容作为title属性值?
例如,对于以下HTML片段:
@@##@@
@@##@@
如何快速为所有包含文本内容的标签添加title属性? 我们还会简要介绍鼠标悬停放大字体的实现方法。
解决方案: 遍历DOM树,筛选并设置属性。以下代码提供一种实现方案:
[...document.querySelectorAll('*')].filter(node => {
const tagName = node.tagName.toLowerCase();
return node.textContent.trim() !== '' && !['html', 'head', 'meta', 'style', 'script', 'link', 'body', 'img', 'video'].includes(tagName);
}).forEach(node => node.setAttribute('title', node.textContent.trim()));
这段代码使用querySelectorAll('*')选择所有元素,filter方法筛选出文本内容非空且标签类型不在排除列表中的节点(排除列表中的标签通常不包含用户可见文本或其内容不适合作为title属性)。最后,forEach方法遍历筛选结果,使用setAttribute方法设置title属性,属性值为节点文本内容(并使用trim()去除前后空格)。
鼠标悬停放大字体: 这可以通过CSS的:hover伪类选择器实现。例如,为所有段落元素添加以下样式:
p:hover {
font-size: 1.2em; /* 放大20% */
}
注意: 以上代码仅针对添加title属性,鼠标悬停放大字体需根据实际需求编写CSS样式。 document.querySelectorAll 比 document.all 更现代、兼容性更好。 可根据需求调整选择器和筛选条件,以获得更精准的元素选择。










