我试着用js为我的wiki做一些东西,当你点击一个文本时,它会用一个按钮把它变成文本区域,当你点击按钮时,它会更新文本。我尝试添加按钮与改变一个div值,但它没有工作。
2wnc66cl1#
您可以使用contenteditable property
contenteditable
const p_EditOnOff = document.querySelector('p') , btn_EditOff = document.querySelector('#btn-EditOff') ; p_EditOnOff.addEventListener('click', () => { if ( p_EditOnOff.contentEditable === 'true') return; p_EditOnOff.contentEditable = true; btn_EditOff.classList.toggle('noDisplay',false); p_EditOnOff.focus(); }) btn_EditOff.onclick =_=> { btn_EditOff.classList.toggle('noDisplay',true); p_EditOnOff.contentEditable = false; }
.noDisplay { display: none; } p[contenteditable="false"] { cursor: pointer; }
<p contenteditable="false">Some text</p> <button id="btn-EditOff" class="noDisplay"> end edit </button>
tv6aics12#
你可以在点击段落元素时隐藏它,然后在它后面添加一个文本区域和按钮。然后为按钮分配一个事件侦听器,以更新段落的textContent并再次显示它。一个基本的例子:
textContent
document.querySelector('p').addEventListener('click', function(e) { // Consider putting these two elements in a container const textarea = document.createElement('textarea'), btn = document.createElement('button'); textarea.value = this.textContent; btn.textContent = 'Save'; btn.addEventListener('click', () => { this.textContent = textarea.value; this.style.display = ''; textarea.remove(); btn.remove(); }); this.style.display = 'none'; this.after(textarea, btn); });
个字符
2条答案
按热度按时间2wnc66cl1#
您可以使用
contenteditable
propertytv6aics12#
你可以在点击段落元素时隐藏它,然后在它后面添加一个文本区域和按钮。然后为按钮分配一个事件侦听器,以更新段落的
textContent
并再次显示它。一个基本的例子:
个字符