克隆 - >改变ids - >添加内容 - >显示 - >附加到父母

时间:2012-05-12 20:34:14

标签: jquery jquery-selectors

我有以下设置

<div class="article-content">
    <div class='editors' id="mine">
        <h2>My Text</h2>
        <textarea name="my_text" id="my_text" class="my_test"></textarea>
    </div>
    <div class='editors' id="termsy_master" style="display:none;">
        <h2>title</h2>
        <textarea name="" id="" class="sm">text</textarea>
        <textarea name="" id="" class="di">text</textarea>
    </div>
</div>

我试图

  • clone“termsy_master”
  • 将ID更改为“他的”
  • 将h2标题更改为“新标题”
  • textarea sm id为“sm_new_id”
  • textarea di id to“di_new_id”
  • 删除display none以使其可见
  • 并将其附加到文章内容

我已完成以下操作,但我不确定如何继续

$('.article-content').append($("#termsy_master").clone());

2 个答案:

答案 0 :(得分:17)

$tmc = $("#termsy_master").clone().attr('id', 'his').show();
$("h2", $tmc).text('new title');
$(".sm", $tmc).attr('id', 'sm_new_id');
$(".di", $tmc).attr('id', 'di_new_id');
$tmc.appendTo(".article-content");

当然,有很多方法可以做到,但这对我来说似乎或多或少是最简单的。不要过分思考!

答案 1 :(得分:3)

以下是一种可能的解决方案:

var block = $("#termsy_master"​).clone();
block.children("h2").text("new title");
block.children(".sm").attr("id", "sm_new_id");
block.children(".di").attr("id", "di_new_id");
block.attr("id", "his").show().appendTo(".article-content");​

DEMO: http://jsfiddle.net/8pxPC/


或者如果你喜欢单行:)

$("#termsy_master").clone().attr("id", "his").show().appendTo(".article-content").children("h2").text("new title").siblings(".sm").attr("id", "sm_new_id").siblings(".di").attr("id", "di_new_id");​