2016-04-26 3 views
1

Я пытаюсь получить выбранный текст с помощью window.getSelection.getRangeAt (0) Это мой код:Javascript window.getSelection() Длина 0 при использовании querySelector

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
      function Selected(){ 
      var range = window.getSelection().getRangeAt(0); 
       alert(range); 
      content = range.cloneContents(); 
      var select = content.querySelectorAll('span'); 
      alert(select.length); 
      } 
      </script> 
    </head> 
    <body > 
     <span style="font-size:45px" onmouseup="Selected()" id="idNo1">This is some text</span> 
    </body> 
</html> 

оповещения (выберите .length); ВСЕГДА 0 может кто-то помочь мне с этим. Спасибо. но диапазон содержит выделенный текст.

+0

Да, я знаю это. когда я выбираю «это какой-то текст», диапазон содержит это, но не способен к этому с помощью querySelecctorAall –

ответ

1

Не можете ли вы сделать это, чтобы получить выбранную длину строки? предупреждение (диапазон) делает диапазон.toString()

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
      function Selected(){ 
      var range = window.getSelection().getRangeAt(0); 
       // to get the text (it does range.toString()) 
       alert(range); 
       // to get the text length 
       alert(range.toString().length); 
       // to get the id of the startNode 
       alert(range.startContainer.parentNode.id); 
      } 
      </script> 
    </head> 
    <body > 
     <span style="font-size:45px" onmouseup="Selected()" id="idNo1">This is some text</span> 
    </body> 
</html> 
+0

Можно ли также получить идентификатор выделенного текста с помощью этого метода? – Jois

+0

вы можете по range.startContainer.parentNode –

+0

Не могли бы вы объяснить ??? в ней очень плохо – Jois

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