javascript 手动清空textarea后 不能更改innerHTML? 50

调用一个算法生成一个str,来更改一个textarea里的innerHTML,每次调用都会将innerHTML置空。但是如果事先点击了textarea并且输入了什么东西,... 调用一个算法生成一个str,来更改一个textarea里的innerHTML,每次调用都会将innerHTML置空。
但是如果事先点击了textarea并且输入了什么东西,就没办法再将其置空或者改变其值了。
为什么?

如果非要看代码如下:

function getResult() {
//清空原结果
alert(document.getElementById("txtaResult").innerHTML); //这里可以正确显示上次结果
document.getElementById("txtaResult").innerHTML = "";//这里就不能更改了

document.getElementById("txtaResult").innerHTML = "result x";

}

html:
<input type="button" id="btnMNFA" value="function" onclick="getResult()"/>
<br />
<br />
结果:
<textarea id="txtaResult" cols="20" rows="10"></textarea>
展开
 我来答
阿刚炖蛋
2013-11-26 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:997万
展开全部

你好!!

function getResult() {
    //清空原结果
    alert(document.getElementById("txtaResult").innerHTML); //这里可以正确显示上次结果
    document.getElementById("txtaResult").innerHTML = "";//这里就不能更改了
    document.getElementById("txtaResult").innerHTML = "result x";

}

/**
经过一次调用后,
document.getElementById("txtaResult").innerHTML的值已经为"result x"了,
所以当第二次调用时,
会直接弹出"result x"--->然后清空--->然后再赋值"result x",
然后就这样开始了它无尽的循环了.
**/
追问
我的意思是,你可以在一开始不点击按钮的时候就尝试着在textarea里输入一些东西
然后这个按钮就再也木有用了,虽然每次提示都会是result x
你可以试试
我觉得这是个bug
如果把innerHTML改成value就不会 不知道为什么
追答
 它这个内容必须得写在标签中间,但是通过js操作它的内容时,大都通过value来操作。
这个标签没有value属性,但是HTMLTextAreaElement元素有value属性.
raydy
2013-11-26 · TA获得超过138个赞
知道小有建树答主
回答量:296
采纳率:25%
帮助的人:65.2万
展开全部
document.getElementById("txtaResult").innerHTML

换成
document.getElementById("txtaResult").value

再试试
追问
嗯 这样木有问题,不过为什么innerHTML会失效呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式