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
答案 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