如何将 DOM 元素设置为第一个子元素?
我有一个元素 E,我正在向其附加一些元素。突然,我发现下一个要追加的元素应该是 E 的第一个子元素。有什么技巧,该怎么做? unshift 方法不起作用,因为 E 是一个对象,而不是数组。
很长的方法是迭代 E 的子级并移动它们 key++,但我确信有一个更好的方法。
I have an element E and I'm appending some elements to it. All of a sudden, I find out that the next element to append should be the first child of E. What's the trick, how to do it? Method unshift doesn't work because E is an object, not array.
Long way would be to iterate through E's children and to move'em key++, but I'm sure that there is a prettier way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
2018 版本 -
prepend
这是现代 JS!它比以前的选项更具可读性。目前可在 Chrome、FF 和 Opera 中使用。
添加到末尾的等效项是
append
,替换旧的appendChild
高级用法
...
)。示例:
相关 DOM 方法
child.before
和child.after
child.replaceWith
Mozilla 文档
我可以使用
2018 version -
prepend
This is modern JS! It is more readable than previous options. It is currently available in Chrome, FF, and Opera.
The equivalent for adding to the end is
append
, replacing the oldappendChild
Advanced usage
...
).Examples:
Related DOM methods
child.before
andchild.after
child.replaceWith
Mozilla Documentation
Can I Use
2017 版本
您可以使用
来自 MDN :
在
insertAdjacent
系列中,有兄弟方法:可以直接注入 html 字符串,如
innerHTML
但不覆盖所有内容,因此您可以将其用作迷你模板 Engin并跳过document.createElement
的压抑过程,甚至使用字符串操作过程element.insertAdjacentText
构建一个完整的组件,以将清理字符串注入到 element 中。不再需要编码/解码
2017 version
You can use
From MDN :
In the family of
insertAdjacent
there is the sibling methods:That can inject html string directly, like
innerHTML
but without override everything, so you can use it as a mini-template Engin and jump the oppressive process ofdocument.createElement
and even build a whole component with string manipulation processelement.insertAdjacentText
for inject sanitize string into element . no moreencode/decode
您可以直接在所有窗口 html 元素中实现它。
像这样 :
You can implement it directly i all your window html elements.
Like this :
接受的答案重构为函数:
Accepted answer refactored into a function:
除非我误解了:
或者
虽然从你的描述来看好像有附加条件,所以
Unless I have misunderstood:
Or
Although it sounds like from your description that there is some condition attached, so
我认为您正在寻找 jQuery 中的 .prepend 函数。示例代码:
I think you're looking for the .prepend function in jQuery. Example code:
我创建这个原型是为了将元素添加到父元素之前。
I created this prototype to prepend elements to parent element.
https://www.w3schools.com/jsref/met_node_insertbefore.asp
https://www.w3schools.com/jsref/met_node_insertbefore.asp