- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如何保留对新创建的元素 (createElement()
) 的引用,该元素是我在 DOM 中的现有元素 (insertAdjacentHTML()
) 之后插入的?
在此示例中,如果我在 insertAdjacentHTML()
之后使用 elNew
/elNewInner
,您可以看到颜色没有改变:
var elOrig = document.getElementById('insertAfter');
// Create new element
var elNew = document.createElement('div'),
elNewInner = document.createElement('div');
elNewInner.textContent = 'I\'m a new element, but I\'m not red';
elNew.appendChild(elNewInner);
elOrig.insertAdjacentHTML('afterend', elNew.outerHTML);
// This doesn't change the color in the DOM
elNewInner.style.color = 'red';
<div id="insertAfter">Insert new element after me</div>
在我使用 insertAdjacentHTML
之后是否有任何方法可以保留对元素的引用,或者在 JavaScript 中是否有其他方法可以实现相同的目的?
最佳答案
比使用 .insertAdjacentHTML
更好的方法与 .outerHTML
就像那样使用 .insertBefore
来自 .parentNode
的 elOrig
.
var elOrig = document.getElementById('insertAfter');
// Create new element
var elNew = document.createElement('div'),
elNewInner = document.createElement('div');
elNewInner.textContent = 'I\'m a new element, but I\'m not red';
elNew.appendChild(elNewInner);
elOrig.parentNode.insertBefore(elNew, elOrig.nextSibling)
// This doesn't change the color in the DOM
elNewInner.style.color = 'red';
<div id="insertAfter">Insert new element after me</div>
这插入 elNew
在 .nextSibling
之前的 elOrig
, 这实际上与把它放在 "afterend"
上是一样的。使用 insertAdjacentHTML
.
按照您原来的方式,您采用新元素,将其转换为 HTML,然后从该 HTML 生成新元素,这肯定会变慢,并且最终会附加一个副本。
关于javascript - `insertAdjacentHTML` 和 `createElement`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665054/
我可以添加我想要的元素,但刷新后它们就会消失。使用 insertAdjacementHTML 时如何永久保存元素,还是需要使用其他方法? 示例代码: function itemAdder () {
我想在特定元素后插入 html,但 insertAdjacentHTML 不允许我先添加结束标签。 如果我这样做 elm.insertAdjacentHTML('afterend', ''); 预期结
我有两个功能。第一个是检查所有输入元素以确保它们被正确填充的那个。一切正常,但随着第二个函数开始运行(第二个函数“newInput()”添加输入),第一个函数不能再应用了。 调试器说 atpositi
fiddle - http://jsfiddle.net/u3bmytnL/ ,没有按预期工作 var x = document.createElement("button"); x.textCont
所以我使用 electron 并在我的文件“ipcRendererEvent.js”中编写了以下代码: function loadImages (images) { const imagesLis
我最近发现了 insertAdjacentHTML 方法,这是天赐之物。因此,我想知道这种方法的支持程度。 IE有吗? Chrome 呢? 最佳答案 我强烈推荐 John Resing 的这篇文章 -
我是 JavaScript 的新学习者,我正在遵循在线指南。基本上我正在创建一个非常简单的待办事项列表。我尝试按照指南进行操作,但似乎我做错了什么。它不会在网页上添加待办事项。 let ourForm
您好,我有一个简单的问题,我是否需要指定lblWelcomeUserMessage.innerHTML = ""; (见下面的代码)在下面的函数之前insertAdjacentHTML就可以了?它实际
我正在尝试从数组(JSON 编码值)动态加载一些链接作为 div 内的列表。在我的实际应用程序中,这个数组来自 PHP。 我使用 insertAdjacentHTML('beforeend', "li
我无法将样式应用于使用 .insertAdjacentHTML 创建的元素。 我试过使用 .style.cssText 但它不起作用。 JS: function addTime(){ cons
我正在尝试编写一个函数来镜像 insertAdjacentHTML dom 方法 Element.insertAdjacentHTML这是 function insertAdjacent(target
使用 native Javascript。通过 insertAdjacentHTML 添加新元素后,我想选择该元素本身( two )。如何在不搜索 DOM 的情况下获得它? // one var d1
我的 CSS 是这样的: function showNoResults() { results.innerHTML = '' results.insertAdjacentHTML( '
如何保留对新创建的元素 (createElement()) 的引用,该元素是我在 DOM 中的现有元素 (insertAdjacentHTML()) 之后插入的? 在此示例中,如果我在 insertA
出于某种原因,在 FF 中使用 insertAdjacentHtml 函数时出现 insertAdjacentHTMl is not a function 错误,在 jQuery 或其他一些替代 ja
我有一个很长的文本包含在一个 中标签。像这样: Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod...
我可以使用 insertAdjacentHTML执行内联 JavaScript? 浏览器控制台的工作原理: $('body').append('alert(1)') 我需要在浏览器控制台中工作: do
尝试执行此代码时,IE 给我一个错误(错误:此操作的目标元素无效。): var d1 = document.getElementById( name + '-body'); d1.insertAdja
我正在尝试在单击某个按钮时添加新的输入和按钮。 ... Add 这是我的问题。 通过单击按
是否可以在 Jquery 中为 insertAdjacentHTML 设置动画?现在它只是将其直接粘贴到指定的 div 中。 当前函数 $(".select-category").click(func
我是一名优秀的程序员,十分优秀!