0

需要在网页中添加一个元素,克隆实际。

console.log(($this)); 

给出这样的东西:

<div id="id" class="class" style="style">
<p style="style">World</p>
</div>

我想在“World”之前添加具有完全相同结构的单词“Hello”

尝试使用 attr() 或 html() 但替换所有属性。

4

5 回答 5

2

单线ftw:

$("#id > p").prepend("Hello ");
于 2012-07-27T15:20:09.840 回答
1
var $hello = $(("#id > p")).clone();
$hello.text("Hello");
$hello.prependTo($("#id"));

http://jsfiddle.net/VmAPr/

当然,如有必要,您可以使用:first:first-child选择器,并将中间结果分配给变量或一行中的所有内容)

于 2012-07-27T15:30:34.623 回答
1
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/

于 2012-07-27T15:18:06.670 回答
1

您提到要“克隆实际”。以下是克隆$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"为了举例而放在那里,但它仍然值得指出。

于 2012-07-27T15:18:59.493 回答
1
$('#id > p').text(function(i,oldValue){
    return "Hello " + oldValue;
});
于 2012-07-27T15:19:07.763 回答