2014-03-01 31 views
3

我有一個正常的文本節點,我只是插入到DOM中。如何使用Rangy選擇文本節點?

我想選擇它(與用戶使用鼠標實際選擇它一樣),可以使用Javascript或Rangy。

我有以下的(我覺得很醜)代碼:

 // insert as regular text node 
     var txt = document.createTextNode($mySpan.text()); 
     $myHeading.get(0).insertBefore(txt, $mySpan.get(0)); 

     // select again 
     var sel = rangy.getSelection(); 
     sel.removeAllRanges() 

     var range = rangy.createRange(); 
     range.selectNode(txt); 

我很樂意與任何幫助。我不知道如何實現它,並且護目鏡不起作用。我能想到的唯一方法是在文本之間插入2個元素,然後選擇它,然後刪除元素,但我想知道是否有更優雅的方式。

感謝,感謝任何幫助。

回答

5

除非我的眼睛騙我,從你的代碼唯一缺少的是這一行:

sel.setSingleRange(range); 

只需將它添加到你目前擁有的結束。 (您還可以刪除sel.removeAllRanges()。)

+0

什麼是白癡..!我有這個,並刪除它。 : -/ 謝謝,路易斯! – nbrogi

+0

這適用於其他節點(我的情況下是錨),而不僅僅是文本節點。 – siannopollo