Javascript 将html的模板字符串追加到DOM onClick
我想在单击和图标时显示模式。模式模板位于MyJS中的模板字符串中 htmlJavascript 将html的模板字符串追加到DOM onClick,javascript,Javascript,我想在单击和图标时显示模式。模式模板位于MyJS中的模板字符串中 html <i id="settings-icon" class="fa fa-cog" onClick='attachModal()'></i> javascript const attachModal = () => { const modal = ` <div class='modal> Modal &l
<i id="settings-icon" class="fa fa-cog" onClick='attachModal()'></i>
javascript
const attachModal = () => {
const modal = `
<div class='modal>
Modal
</div>
`;
document.body.insertAdjacentHTML('beforeend', modal);
};
const attachModal=()=>{
常数模态=`
我建议使用[innerHTML][1]
和[node.remove()][1]
,因为模态只应可见或隐藏。您可以使用document.body.innerHTML+=modal
将模态代码附加到html。使用+=
将新html连接到现有html,而不替换/删除任何现有html
如果isModal
为true(意味着模态已经可见),则使用isModal.remove()
,这是一种子节点可以用来从其父节点(在本例中为body
)中移除自身的方法
通过添加有条件地隐藏或显示模式的逻辑,您可以在我假设的模式内的关闭或取消按钮中重用此函数
*注意:我使用p
标记而不是I
标记用于说明目的。p
标记对解决方案并不重要
const attachModal=()=>{
var isModal=document.getElementById('modal')
常数模态=`
情态动词
`
if(isModal){
isModal.remove()
}否则{
document.body.innerHTML+=模态
}
};
test
当你添加第二个`so its:class='modal'
时会发生什么?@imvain2好眼力!但是它仍然不在domI中。我创建了这个工作小提琴:我唯一的改变是修复了这个modal类,添加了一个要单击的字符,并创建了一个modal类以直观地看到它被添加。而不是动态添加HTML,你为什么不把它放在HTML中,然后改变它的显示样式呢?