本教程详细阐述了如何利用javascript的dom操作,实现点击图标后将html页面中的``链接元素动态转换为`
在现代Web应用中,动态的用户界面交互是提升用户体验的关键。有时,我们需要允许用户直接在页面上编辑某些内容,例如将一个展示文本的链接(标签)在点击后转换为一个可编辑的文本域(
实现元素动态转换的核心在于JavaScript对文档对象模型(DOM)的操作能力以及事件处理机制。
首先,我们来看一个典型的HTML结构,其中包含一个可点击的图标和一个需要转换的链接。
Exemple
在这个结构中:
现在,我们来编写convertElement函数,它将负责处理元素的查找、替换和内容迁移。
function convertElement(event) {
// 1. 获取触发事件的元素(即点击的图标),并向上查找以定位相关内容区域。
// event.target 是点击的元素
// event.target.parentNode 是
// 通过querySelector查找包含的父级h4元素
let parentH4 = event.target.parentNode.querySelector(".services-item__content > h4");
// 2. 获取目标 元素
let targetLink = parentH4.querySelector("a");
// 3. 存储 元素的文本内容
let linkText = targetLink.innerText;
// 4. 移除旧的 元素
parentH4.removeChild(targetLink);
// 5. 创建新的 let parentH4 = event.target.parentNode.querySelector(".services-item__content > h4");
let targetLink = parentH4.querySelector("a");
let linkText = targetLink.innerText;
parentH4.removeChild(targetLink);
let newTextarea = document.createElement("textarea");
newTextarea.style.width = "100%"; ...
newTextarea.value = linkText;
parentH4.appendChild(newTextarea);
newTextarea.focus();