2013-07-11 37 views
0

你有一個簡單的需要生成一個新的窗口與textarea的內容。基於用戶想要的格式類型,他們可以按下一個按鈕來改變一些textarea的文本以適應他們的需要。但是我在實現.replace命令時遇到了麻煩 - 儘管我試圖在此論壇上關注示例。jquery替換語法不起作用

<body> 
    <div id="diagoutput"> </div> 

<a onclick="combine()" href="report_output.html" id="link" target="_blank"><input type="button" value="Generate a report window"><br> 

    <textarea rows="10" cols="40" placeholder="Diagnosis" id="outPut3">I love the sun devils</textarea><br> 

    </body> 

這裏是我的js代碼段中不更換預期文本

function combine(){ 
    var diag=$("#outPut3").text().replace(/sun devils/g, "WILDCATS"); 
    var textToPass=' \nNEW TEXT:\n'+diag.value; 
    localStorage.setItem("myText", textToPass); 
}; 

我是新的jQuery,所以我的一些嘗試複製別人已經做可能有點粗。

我感謝所有幫助, CK

+0

ü可以創建一個http://fiddle.net這個 – dreamweiver

回答

2

要獲得textarea的內容,不要使用textval,不要嘗試調用valuediag變量,因爲它是一個字符串,而不是jQuery的元素:

var diag=$("#outPut3").val().replace(/sun devils/g, "WILDCATS"); 
var textToPass=' \nNEW TEXT:\n'+diag; 
localStorage.setItem("myText", textToPass); 

如果你想改變內容的替換字符串,再次使用val

$("#outPut3").val(textToPass); 
+0

謝謝,這真是棒極了!一個問題,如果我使用'text()'而不是val(),那麼'var diag ='中會存儲什麼?如果不是文字,那麼是什麼? – user1837608

+0

文本的初始值,而不是當前textarea的值。 –

+0

很酷。謝謝你的提示。 – user1837608

0

其實你的代碼很好。唯一的錯誤是diag.value,你可以有

var textToPass=' \nNEW TEXT:\n'+diag; 

櫃面,如果你想在textarea,然後更改如下面的代碼。

var diag= $("#outPut3").text().replace(/sun devils/g, "WILDCATS"); 
$("#outPut3").text(diag); 

入住這Fiddle