2016-02-26 146 views
2

div中的文本未被選中。我究竟做錯了什麼?我使用setSelectionRange有什麼問題?

要進行測試,雙擊div,鍵入一些文字,然後點擊即可。 Example on CodePen

<script> 
    function editIt(div){ 
    // console.log(div.textContent); 
    div.contentEditable=true 
    div.focus() 
    } 

    function selectIt(div){ 
    // div.focus 
    div.setSelectionRange(2, 2) 
    div.focus() 
    } 
</script> 

    <div ondblclick="editIt(this)" style="border:1px solid; width:100px; height:20px" onblur="selectIt(this)" /> 

thx!

回答

1

setSelectionRange只適用於input元素,而您似乎正在使用div。檢查docs

另見working example當我輸入的元素取代它。

+0

這不回答這個問題,「這有什麼錯我的使用setSelectionRange的。但我並不想選擇'input'的內容,我想選擇一個內容編輯'div'的內容。我已經學會了適當的解決方案是'崩潰' –

+0

非崩潰,即爲和即創建範圍這裏完整的解決方案https://www.sitepoint.com/community/t/set-caret-position- in-contenteditable-div/6574/4 –

+0

我的標題具有誤導性,但我認爲從問題的內容可以清楚地知道,我真正想要做的是在內容可編輯的div中選擇文本,回答。 –