繁体   English   中英

在不修改实际dom状态的情况下操作dom元素

[英]manipulating a dom element without modifying the actual dom state

我了解,当我们这样做时:

var el = $("#el")

我们实质上是在参考实际的DOM元素。 然后执行$("#el").text("new text")将导致该元素(在DOM中)的文本被更改。

我的问题是,如果我想将此元素用作模板怎么办?

var new_element = $("#el").text("new element") // just this element manipulation
$("ul").prepend( new_element ); // actual dom manipulation

或者,是否必须将<div id="newObject"></div>注入DOM世界,获取其引用然后进行操作?

编辑:

$(“#el”)。clone()是实现此目的的方法

不,您不需要将其放入DOM。 您可以让jQuery创建元素并引用它。 克隆元素很重要。 如果您不这样做,它只会更改原始元素,并且由于元素不能一次位于两个位置,因此它只会移动。

 const templateLi = $('<li class="foo"></li>') function addLi(text) { const li = templateLi.clone().text(text) $("ul").append(li) } addLi("hello") addLi("bacon") 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> </ul> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM