修改div中的段落元素

时间:2012-07-27 15:16:27

标签: jquery dom

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

console.log(($this)); 

给出这样的东西:

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

我想在“World”

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

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

5 个答案:

答案 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); 

    }); 
});​

示例:http://jsfiddle.net/trdxg/7/

答案 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"));

http://jsfiddle.net/VmAPr/

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