1

我有以下代码在标签后附加一个带有警报的图标<a>

$j("li[name='"+node_name+"'] > a").after('<a onmouseover="alert(\' expnote_from_db[n][0] \');" ><ins class="' + selected_class + '">&nbsp;</ins></a>');

上面的代码工作正常,只是它exp_from_db[n][0]在警告框中显示为字符串。

所以我把它改成了下面的代码,但现在什么都没有显示

  $j("li[name='"+node_name+"'] > a").after('<a onmouseover="alert(\'"'+ expnote_from_db[n][0] + '"\');" ><ins class="' + selected_class + '">&nbsp;</ins></a>');

我不明白撇号在哪里出错了。

我将感谢您对此提供的帮助。谢谢

4

2 回答 2

3

这些"字符用于分隔 HTML 属性。您正在过早地终止该属性。

<a onmouseover="alert(\'"

在 HTML 属性中嵌套 JavaScript 是一件很痛苦的事情。

将 JavaScript 嵌套在 JavaScript 字符串中的 HTML 属性中是一个更大的痛苦。

不要这样做。使用和朋友应用事件处理程序addEventListener(因为您使用的是 jQuery,这意味着使用on抽象它们的方法)。

于 2012-08-31T13:48:28.430 回答
3

这应该工作

$j('li[name="'+node_name+'"] > a')
    .after('<a onmouseover="alert(\''+ expnote_from_db[n][0] + '\')" ><ins class="' + selected_class + '">&nbsp;</ins></a>');
于 2012-08-31T13:56:13.720 回答