2016-01-18 2 views
0

Этот вопрос может быть похож наКак найти начальную и конечную позиции текста div в Javascript?

How to find the selection text beginning and end positions in Javascript?

Но это немного по-другому.

У меня есть DIV как this-

<div class="text-block title"> 
    ve <i><u>ri</u> <b>t</i>us</b> anything anything hi hello bla bla 
</div> 

То, что я пытаюсь сделать, если пользователь выбирает этот текст, как this-

enter image description here

Тогда я хочу, чтобы получить индекс (для этого условия 4,17).

Есть ли способ?

Заранее спасибо за помощь ..

ответ

0

Существует способ, но сначала добавить «идентификатор» в тексте, пожалуйста:

<div class="text-block title" id="text"> 
    ve <i><u>ri</u> <b>t</i>us</b> anything anything hi hello bla bla 
</div> 



$("#text").select(function(){  
    selectedText = document.getSelection(); 
    var index = getIndex(selectedText , this.innerHTML); 
    console.log("index: "+index.start+" , "+index.end; 
}); 

//this function was writed by me, so... 
var getIndex = function(wA ,wB){ 
    var a = wA.length; 
    var b = wB.length; 
    var d = b-a; 
    var that ={}; 
    if(a<=b){ 
     for(var i=0;i<=d;i++){ 
      var c = ""; 
      for(var j=0;j<wA.length;j++){ 
       c+=wB.charAt(j+i); 
      } 
      if(wA.toUpperCase()==c.toUpperCase()){ 
       that.start = i; 
       that.end = i+j; 
       return that; 
      } 
     } 
    } 
} 

И вот все, проверить и попробовать, если у найти ошибки, скажите мне, спасибо;)

+1

Конечно, спасибо, я проверяю :) –

0

Это можно сделать гораздо проще! :)

$("textarea").select(function(e) { 
 
\t console.log(e.target.selectionStart); 
 
    console.log(e.target.selectionEnd); 
 
}); 
 

 
//fiddle: https://jsfiddle.net/Jorrex/upsopjqw/
textarea { 
 
    height: 200px; 
 
    width: 200px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea> 
 
    Hi Hello Vi Veritas Vanitas Sora Roxas Rike Kairi Mickey Donald Goofy Ventus Aqua Terra Eraqus Xehanort 
 
    
 
</textarea>

+0

Параметр '.select()' событие ограничивается 'input' и' textarea'elements – Jorrex

Смежные вопросы