需要在网页中添加一个元素,克隆实际。
console.log(($this));
给出这样的东西:
<div id="id" class="class" style="style">
<p style="style">World</p>
</div>
我想在“World”之前添加具有完全相同结构的单词“Hello”
尝试使用 attr() 或 html() 但替换所有属性。
单线ftw:
$("#id > p").prepend("Hello ");
var $hello = $(("#id > p")).clone();
$hello.text("Hello");
$hello.prependTo($("#id"));
当然,如有必要,您可以使用:first或:first-child选择器,并将中间结果分配给变量或一行中的所有内容)
var currentcontent=$("#id").find("p").text();
$("#id").find("p").text("Hello"+currentcontent);
这将只对具有该特定 ID 的一个 DIV 执行此操作(ID 是唯一的)
示例:http: //jsfiddle.net/trdxg/2/
如果要对n个具有相同结构的元素执行此操作,可以更改 jQuery 选择器以使用class
.
$(function(){
$("div.class").each(function(index,item){
var item=$(this);
var currentcontent=item.find("p").text();
item.find("p").text("Hello"+currentcontent);
});
});
示例:http: //jsfiddle.net/trdxg/7/
您提到要“克隆实际”。以下是克隆$this
和修改克隆内容的方法:
var $clone = $this.clone();
$clone.find('p').text(function(i, oldText){
return "Hello " + oldText;
});
$clone.appendTo('#someContainer'); // now put the copy somewhere else
编辑:克隆时请记住,您不希望多个元素具有相同的 id。看起来你只是id="id"
为了举例而放在那里,但它仍然值得指出。
$('#id > p').text(function(i,oldValue){
return "Hello " + oldValue;
});