2016-04-26 86 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> 

警報(選擇。長度);總是有人可以幫我解決這個問題。謝謝。但範圍包含選定的文本。

+0

是啊,我知道。當我選擇「這是一些文本」範圍包含但不能使用querySelecctorAall –

回答

1

難道你不能這樣做,以獲得選定的字符串長度? 警報(範圍)做range.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

我們是否也可以使用此方法獲取所選文本的ID? – Jois

+0

你可以通過range.startContainer.parentNode –

+0

你能解釋一下嗎?需要它非常糟糕 – Jois