jquery替换语法不起作用

时间:2013-07-11 13:38:31

标签: jquery replace

HI非常需要使用textarea的内容生成一个新窗口。根据用户想要的格式,他们可以按一个按钮来改变一些textarea'文本'以满足他们的需要。但是我在实现.replace命令时遇到了麻烦 - 虽然我试图在这个论坛上关注示例。

    <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

2 个答案:

答案 0 :(得分:2)

要获取textarea的内容,请不要使用text,而是使用val,并且不要尝试在value变量上调用diag,因为它是字符串,而不是jQuery元素:

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

如果要将内容更改为替换后的字符串,请再次使用val

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

答案 1 :(得分:0)

其实你的代码很好。唯一的错误是diag.value,你可以

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

如果您想要加入textarea,请更改您的代码,如下所示。

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

选中此Fiddle