高效批量添加网页元素title属性及实现悬停放大字体
网页开发中,经常需要批量操作页面元素,例如为所有包含文本内容的标签添加title属性,或实现鼠标悬停时字体放大效果。本文重点讲解如何高效地为页面所有包含文本内容的标签添加title属性。
问题: 如何高效地为网页中所有包含文本内容的标签元素添加title属性?或实现鼠标悬停时字体略微放大?
例如:
<p><img src="https://img.php.cn/" alt="如何高效批量为网页元素添加title属性及实现悬停放大字体?" ><br><img src="https://img.php.cn/" alt="如何高效批量为网页元素添加title属性及实现悬停放大字体?" ></p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/1960" title="小羊标书"><img
src="https://img.php.cn/upload/ai_manual/000/000/000/175680456053464.png" alt="小羊标书" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/1960" title="小羊标书">小羊标书</a>
<p>一键生成百页标书,让投标更简单高效</p>
</div>
<a href="/ai/1960" title="小羊标书" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>
我们可能希望为<p></p>标签(如果包含文本)和其他包含文本内容的标签添加title属性。
解决方案: 遍历DOM树,操作符合条件的节点。以下代码片段高效实现此功能:
[...document.all].filter(node => !/html|head|meta|style|script|link|body|img|video/i.test(node.tagName)).forEach(node => node.setAttribute('title', node.textContent));
这段代码先用document.all获取所有元素,再用filter方法过滤掉无需处理的标签(如、、<meta>、<style></style>、<script></script>、<link>、、<img src="https://img.php.cn/upload/article/001/246/273/174084145850895.jpg" alt="如何高效批量为网页元素添加title属性及实现悬停放大字体?
">









