我正在创建一个WYSIWYG文本编辑器,而不能使用.on
代替<a onclick>
,因为这样我就会丢失文本选择。但是我需要在动态创建节点之后插入<div>
。
HTML:
<a href="javascript:;" onclick="wrap('div')">
<div class = "insert_after" ></div>
</a>
JS
function wrap(tag) {
var sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
var selectedText = range.toString();
range.deleteContents();
var newNode = document.createElement(tag);
range.insertNode(newNode);
$(newNode).after("<div style = 'width: 100%; min-height: 20px'></div>");
}
}
}
答案 0 :(得分:1)
您可以尝试替换:
var newNode = document.createElement(tag);
range.insertNode(newNode);
by:
var newNode = $('<'+tag+'></'+tag+'>');
range.insertNode(newNode[0]);