2013-06-26 40 views
0

我試圖做類似的事情。當按下CTRL + B時​​,它應該在所選文本週圍添加[b]和[/ b]。我可以利用這段JavaScript代碼獲取選中文本:Get the Highlighted/Selected text當鍵被按下時,替換myBB論壇(textare)上的字符串 - jQuery

不過......當我嘗試這樣的事:

$(document).ready(function(){ 
    $('#message').on('keydown',function(e) { 
     key = e.which; 
     if(e.which == 39){ 
      str = getSelectionText(); 
      $("#message").replace(str,"[b]"+str+"[/b]"); 
     } 
    }) 
}); 

將無法​​正常工作。它會說「Object [object Object]沒有方法'replace'」,這很奇怪,因爲當我做alert(str)的時候;它會顯示選中的文字。

誰能告訴我爲什麼?鍵39是右箭頭鍵。

在此先感謝

+0

順便說一句。我只是使用39(右箭頭鍵)作爲測試。 – MortenMoulder

回答

2

這是一個jQuery對象,這就是爲什麼.replace不會工作。您需要添加.val()以獲取實際值,然後您必須將其設置爲:

var value = $("#message").val(); 
value = value.replace(str,"[b]"+str+"[/b]"); 
$("#message").val(value); 
+0

工作就像一個魅力。謝謝。有時我對Javascript和jQuery感到困惑! – MortenMoulder