需要在网页中添加元素,克隆实际内容。
console.log(($this));
给出这样的东西:
<div id="id" class="class" style="style">
<p style="style">World</p>
</div>
我想在“World”
之前添加具有完全相同结构的单词“Hello”尝试使用attr()或html()但替换所有属性。
答案 0 :(得分:2)
One-liners ftw:
$("#id > p").prepend("Hello ");
答案 1 :(得分:1)
var currentcontent=$("#id").find("p").text();
$("#id").find("p").text("Hello"+currentcontent);
这将仅针对具有该特定ID(Id)s的唯一DIV的一个DIV)
示例: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);
});
});
答案 2 :(得分:1)
你提到你想要克隆实际的&#34;。以下是克隆$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"
放在那里,但它仍然值得指出。
答案 3 :(得分:1)
$('#id > p').text(function(i,oldValue){
return "Hello " + oldValue;
});
答案 4 :(得分:1)
var $hello = $(("#id > p")).clone();
$hello.text("Hello");
$hello.prependTo($("#id"));
当然,如果需要,您可以使用:first 或:first-child 选择器,并将中间结果分配给变量或一行中的所有内容)