发新贴  快速回复

给文字打上标签,重复出现的文字不允许打上标

96362340
2019-04-03 16:25

给鼠标选中的文字,加上一个标签, 只能给选中的文字加,不能重复,比如abcdabc  选中最后的bc打上标签,前面的不允许的打上标签后面重复也不行。哪位大神能给解决下, 十分感谢

 
紫宸

亲  问问题的时候  最好附上代码   或是案例图哟  只是文字说明  讲师不好回复哟

2019-04-17 10:17  回复本帖
96362340

2019-04-18 12:57  回复本帖
96362340

紫宸 2019-04-17 10:17发表的内容:

亲  问问题的时候  最好附上代码   或是案例图哟  只是文字说明  讲师不好回复哟

let sText = document.getSelection();
let selectedText = sText.toString();
let text = sText.anchorNode;
let start = sText.anchorOffset;
let end = sText.focusOffset;
let em = `<em id="${id}" draggable='true' style="background:red">${selectedText}</em>`;
let tempStr1 = text.nodeValue.substring(0,start);
let tempStr2 = text.nodeValue.substring(end);
let newText = document.createElement('font');
let offset = doc.indexOf(sText) //+ start;
newText.innerHTML = tempStr1 + em + tempStr2;
text.parentNode.replaceChild(newText,text);
2019-04-18 13:02  回复本帖
96362340

紫宸 2019-04-17 10:17发表的内容:

亲  问问题的时候  最好附上代码   或是案例图哟  只是文字说明  讲师不好回复哟

let sText = document.getSelection();
let selectedText = sText.toString();
let text = sText.anchorNode;
let start = sText.anchorOffset;
let end = sText.focusOffset;
let em = `<em id="${id}" draggable='true' style="background:red">${selectedText}</em>`;
let tempStr1 = text.nodeValue.substring(0,start);
let tempStr2 = text.nodeValue.substring(end);
let newText = document.createElement('font');
let offset = doc.indexOf(sText) //+ start;
newText.innerHTML = tempStr1 + em + tempStr2;
text.parentNode.replaceChild(newText,text);
2019-04-18 13:02  回复本帖
96362340

紫宸 2019-04-17 10:17发表的内容:

亲  问问题的时候  最好附上代码   或是案例图哟  只是文字说明  讲师不好回复哟

let sText = document.getSelection();
let selectedText = sText.toString();
let text = sText.anchorNode;
let start = sText.anchorOffset;
let end = sText.focusOffset;
let em = `<em id="${id}" draggable='true' style="background:red">${selectedText}</em>`;
let tempStr1 = text.nodeValue.substring(0,start);
let tempStr2 = text.nodeValue.substring(end);
let newText = document.createElement('font');
let offset = doc.indexOf(sText) //+ start;
newText.innerHTML = tempStr1 + em + tempStr2;
text.parentNode.replaceChild(newText,text);
2019-04-18 13:02  回复本帖
96362340

紫宸 2019-04-17 10:17发表的内容:

亲  问问题的时候  最好附上代码   或是案例图哟  只是文字说明  讲师不好回复哟

let sText = document.getSelection();
let selectedText = sText.toString();
let text = sText.anchorNode;
let start = sText.anchorOffset;
let end = sText.focusOffset;
let em = `<em id="${id}" draggable='true' style="background:red">${selectedText}</em>`;
let tempStr1 = text.nodeValue.substring(0,start);
let tempStr2 = text.nodeValue.substring(end);
let newText = document.createElement('font');
let offset = doc.indexOf(sText) //+ start;
newText.innerHTML = tempStr1 + em + tempStr2;
text.parentNode.replaceChild(newText,text);
2019-04-18 13:03  回复本帖
96362340

紫宸 2019-04-17 10:17发表的内容:

亲  问问题的时候  最好附上代码   或是案例图哟  只是文字说明  讲师不好回复哟

let sText = document.getSelection();
let selectedText = sText.toString();
let text = sText.anchorNode;
let start = sText.anchorOffset;
let end = sText.focusOffset;
let em = `<em id="${id}" draggable='true' style="background:red">${selectedText}</em>`;
let tempStr1 = text.nodeValue.substring(0,start);
let tempStr2 = text.nodeValue.substring(end);
let newText = document.createElement('font');
let offset = doc.indexOf(sText) //+ start;
newText.innerHTML = tempStr1 + em + tempStr2;
text.parentNode.replaceChild(newText,text);
2019-04-18 13:03  回复本帖
 
Reci

可以了解下getSelection() 这个方法,window下面的,更适合做你这个

不过注意 这个方法需要做兼容处理~

2019-04-18 18:25  回复本帖
登录 后才可以发表回复