使用onclick的Javascript innerHTML不起作用

时间:2011-11-16 17:05:49

标签: javascript html dom

我有一些AJAX,它会引入以下内容,使用div添加到innerHTML

<a href="#" onclick="javascript:document.getElementById('textareax').value += '\r\nTEST';">Add</a>

然后当我按下“添加”链接时,它会将“TEST”添加到textareax

如果我从一开始就在文档的HTML中使用它,它可以很好地工作,但是当我使用AJAX并使用innerHTML将其添加到div“添加”时链接不起作用。

我认为这可能是一个问题,因为它中包含javascript而我只是使用innerHTML添加它,但不知道如何解决这个问题。

2 个答案:

答案 0 :(得分:2)

\r\n是换行符,但已由解析为innerHTML将设置为:

<a href="#" onclick="javascript:document.getElementById('textareax').value += '
TEST';">Add</a>

不起作用(语法错误; JavaScript字符串不能包含文字换行符)。

您需要使用\\r\\n进行双重转义,以便在JavaScript解析时\r\n成为\\ \r将不受影响)。然后\r\n将保留在onclick处理程序中,以便新行确实添加到textarea:http://jsfiddle.net/r6bhE/

答案 1 :(得分:1)

onclick="javascript:document[...]语法不正确。 onclick属性是一个javascript事件,不需要javascript方案指示。您只需将脚本直接放入属性值:

<a href="#" onclick="document.getElementById('textareax').value += '\r\nTEST';">Add</a>

在拦截鼠标事件时返回一个值也是一个好主意(true传递事件,false取消它)。