Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将html的模板字符串追加到DOM onClick_Javascript - Fatal编程技术网

Javascript 将html的模板字符串追加到DOM onClick

Javascript 将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

我想在单击和图标时显示模式。模式模板位于MyJS中的模板字符串中

html

<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中,然后改变它的
显示
样式呢?