0

我想在 jquery 中创建一个插件。

这是我的 html 代码:

<div class="popup">
  <div class="bc_top">
    <div class="bc_tl"></div>
    <div class="bc_tm"></div>
    <div class="bc_tr"></div>
  </div>
  <div class="bc_middle">
    <div class="bc_ml">
      <div class="bc_mr">
        <div class="bc_cnt">




        </div>
      </div>
    </div>
  </div>
  <div class="bc_bottom">
    <div class="bc_bl"></div>
    <div class="bc_bm"></div>
    <div class="bc_br"></div>
  </div>
</div>

我想在我的标签周围插入上面的代码,我的标签 html 内容应该插入到 div.bc_cnt 中,所以我编写了一个 jQuery 插件:

$.fn.popup = function() {
    $(this).before('<div class="popup">\
                      <div class="bc_top">\
                        <div class="bc_tl"></div>\
                        <div class="bc_tm"></div>\
                        <div class="bc_tr"></div>\
                      </div>\
                      <div class="bc_middle">\
                        <div class="bc_ml">\
                          <div class="bc_mr">\
                            <div class="bc_cnt">'+$(this).html()+'</div>\
                          </div>\
                        </div>\
                      </div>\
                      <div class="bc_bottom">\
                        <div class="bc_bl"></div>\
                        <div class="bc_bm"></div>\
                        <div class="bc_br"></div>\
                      </div>\
                    </div>');   

}

我这样使用:

<scritp>
    $('div#pop').popup();
</script>


    <div id="pop">
        this is a test
    </div>

一切正常,但这段代码只插入所选标签的 html 内容以使用 $(this).html() 弹出,我想在弹出窗口中插入完整的标签(我的意思是<div id="pop">this is a test</div>

我该怎么办?

PS:对不起我的英语不好。

4

2 回答 2

0

您应该尝试使用 $(this).text()

于 2012-04-16T20:16:52.253 回答
0

您可以克隆 orig 元素,将其附加到临时 div 并获取 div 的 html。见下文,

$('<div>').append($(this).clone()).html()

演示

如果要删除原始文件,可以.remove在函数末尾使用 as$(this).remove()

于 2012-04-16T20:24:41.453 回答