在文本框中获取单击单词的位置(Javascript)

时间:2017-04-01 13:39:11

标签: javascript jquery html

我有一个包含多个句子的文本框,当我点击一个单词时,我需要在这个文本框中找到该单词的位置。

代码实际上只是从textarea获取整个文本并将其写入另一个文本区域。我正在努力获得我点击的角色(或单词)的具体位置。

它应该做的只是在点击的单词/字符之前复制文本。



	var themaintextarea = document.getElementById('textarea'); 
	themaintextarea.addEventListener('click', replace_sentence);
	function replace_sentence(e){
		var themaintext = document.getElementById("textarea").innerHTML;
    //alert(thereplace);
    document.getElementById("curent_sentence").value = themaintext;
    theselection = window.getSelection();
    var therange = theselection.getRangeAt(0);
    var sometext = therange.toString().trim();
    alert(sometext);
    
	}	

<textarea id="curent_sentence"></textarea>

<div id="textarea" contenteditable>I <span>like</span> apples. I <span>like</span> apples. 
<br>
I <span>like</span> apples.</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

EDITED:继续点击单词之前选择单词的小提琴。注意:此处不使用跨距。 https://jsfiddle.net/Lnkav5ca/5/

我想我理解你在寻找什么。 https://jsfiddle.net/Lnkav5ca/1/我将所有可点击的单词放在一个类中,并向该类添加事件监听器。因此,当单击该单词时,它将插入到文本框中。

var themaintextarea = document.getElementsByClassName('clickable'); 
for (var i = 0; i < themaintextarea.length; i++) {   
themaintextarea[i].addEventListener('click', replace_sentence);
}
function replace_sentence(e){
console.log(e);
    var themaintext = e.target.innerHTML
//alert(thereplace);
document.getElementById("curent_sentence").value = themaintext;
theselection = window.getSelection();
var therange = theselection.getRangeAt(0);
var sometext = therange.toString().trim();
//alert(sometext);

}