Javascript jQuery div到文本区域包裹展开器
我想使用jwysiwyg,但我希望它应用于div元素,而不是textarea。我认为该插件不允许使用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
.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());