javascript - 使用 innerHTML 是否会阻止客户端 javascript 应用于新的 html?
问题描述
我正在使用 .innerhtml 从表单中获取信息,并重新显示以信用卡形式显示的动态数据列表。例如,请参见以下链接。https://codepen.io/quinlo/pen/ YONMEa ) 到 DOM。但是,当我将该信息显示回 DOM 时,我的客户端 Javascript 似乎并没有通过重新读取它们的 id 和 class 来应用于新元素。
相关代码片段
var renderElement = document.querySelector(".cardbox");
const html = '<div class="card-container preload" id="target" >'+
'<div class="creditcardrender">'+
' <div class="front">'+
' <div id="ccsingle"></div>'+ ... etc
renderElement.innerHTML += html;
这是不可避免的 HTML/Javascript 属性还是有解决此问题的方法?
谢谢。
解决方案
如果我正确理解了这个问题,
usingrenderElement.innerHTML += html;
等价于renderElement.innerHTML = renderElement.innerHTML + html;
,这意味着它的值是由两个字符串连接产生的一个新字符串。因此,现有的 HTML 元素将被重构,就好像您从头开始分配它一样。
要添加您希望出现的 HTML 代码,您可以使用insertAdjacentHTML()
函数将 HTML 代码添加到元素中,而无需修改现有代码。
renderElement.insertAdjacentHTML('beforeend', html)
推荐阅读
- google-colaboratory - 在 Google Colaboratory Notebook 上使用 Geoviews 绘制 Xarray 图像
- regex - 如何在匹配前后对模式进行 sed
- deep-learning - 在不使用面部识别的情况下识别一个人的最佳方法(深度学习)
- sql-server - 超集 sqlalchemy 错误:没有名为“pymssql”的模块
- r - 从这个嵌套的 R 列表中提取数据的优雅、实用的方法
- node.js - 如何使用 req.body 保存猫鼬对象
- javascript - JavaScript 数组对象问题
- php - 重新调整大小/重新缩放 pdf 在 PHP 中留下白边
- mysql - MySql 别名与列名相同
- javascript - 是否可以在 chrome 控制台中显示对象的内容?