Javascript jQuery div到文本区域包裹展开器

Javascript jQuery div到文本区域包裹展开器,javascript,jquery,Javascript,Jquery,我想使用jwysiwyg,但我希望它应用于div元素,而不是textarea。我认为该插件不允许使用div。因此,在应用.jwywiwig()之前,我需要在单击时将div转换为textarea 我想做些什么 <div style="width:300px;height:200px; background:red">testing</div> 测试 进入这个 <textarea style="width:300px;height:200px; background

我想使用jwysiwyg,但我希望它应用于div元素,而不是textarea。我认为该插件不允许使用div。因此,在应用
.jwywiwig()
之前,我需要在单击时将div转换为textarea

我想做些什么

<div style="width:300px;height:200px; background:red">testing</div>
测试
进入这个

<textarea style="width:300px;height:200px; background:red">testing</textarea>
测试

如何在保持div中的内联样式和html的同时做到这一点呢

var textarea = $('<textarea/>');
textarea.attr('style', $(div).attr('style'));
textarea.text($(div).text());
$(div).replaceWith(textarea);
var textarea=$('');
textarea.attr('style'),$(div.attr('style');
text($(div.text());
$(div).替换为(textarea);

创建一个文本区域,在CSS上复制并替换div。

您可以获得
div的
style
属性及其文本,然后将
div
替换为
文本区域,该区域具有
style
属性并将文本设置为
div

    var $div  = $('div'),
        text  = $div.text(),
        style = $div.attr('style');
    $div.replaceWith('<textarea style="' + style + '">' + text + '</textarea>');
JavaScript--

$(文档)。在('click','div',函数(){
var$div=$(本);
$div.replaceWith(“”+$div.text()+“”);
});
$(文档).on('blur','textarea',函数(){
var$textarea=$(此);
$textarea.replaceWith(“”+$textarea.val()+“”);
});

这里有一个演示:

更好的方法是使用 这样,您就不必担心复制文本或样式。你所要做的就是包装和打开

要包装,请执行此操作

$('#test').wrapInner('<textarea style="width:100%; height:100%; background-color:transparent; border:0"/>'); 
$("#test").html($('#test textarea').val());

谢谢,当我们在外面点击时,我们如何把它返回给div。我是否必须以相反的方式再次重做相同的代码。@Pinkie Yeah,
$textarea=$('textarea'),text=$textarea.val(),style=$textarea.attr('style')$textarea.replace为(“”+text+“”)谢谢,贾斯珀。侯赛因的解决方案更适合我的情况,而不必使用所有这些代码。这是个好主意。谢谢,这对我来说非常有用。从
textarea
div
的过程是什么?@jasper just user wrapInner()
$(“#test”).wrapInner(“”)好的,我得到了这个部分。我被困在如何打开从
div
textarea
textarea
上,对吗?这是光滑的+1。如何从
文本区域返回
div
。意思是如何
unwapinner()
(因为这不是真正的函数)?
$('#test').wrapInner('<textarea style="width:100%; height:100%; background-color:transparent; border:0"/>'); 
$("#test").html($('#test textarea').val());