如何解决这个"missing ) argument after list"?



这看起来是一个微不足道的问题,但我不知道如何处理它。我有一个从javascript生成的DIV标签,如下所示:

$('#results')
 .append('<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, 'mouseover');};><H3>'
 + A.name
 + '</H3></DIV>');

Firebug在列表之后给我一个错误"缺失)参数",因为它不识别'mouseover'之后的)。我该如何解决这个问题?

更新:

我理解这是关于转义引用,只是做'mouseover'在鼠标悬停DIV时产生语法错误,做"mouseover"产生空白文档。

function(){google.maps.event.trigger(marker,
)

如果在另一个quote:内,则需要转义quote:

  • var x = "I don't like you!";
  • var y = 'I don't like you!';
  • var z = 'echo "this text?";';

要在您的案例中实现它,它将像这样:

'<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, 'mouseover');};><H3>'
 + A.name
 + '</H3></DIV>'

您的问题是在使用'字符来分隔函数和调用中的参数。

'中的一组替换为",或者在参数

的值周围使用'
$('#results')
 .append('<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, "mouseover");};><H3>'
 + A.name
 + '</H3></DIV>');
//OR
$('#results')
 .append('<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, 'mouseover');};><H3>'
 + A.name
 + '</H3></DIV>');

尝试生成以下字符串

'<DIV id=' + 
A.pid  + 
' onmouseover="google.maps.event.trigger(marker, 'mouseover');"> <H3>' + 
A.name + '</H3></DIV>'

你需要在html属性的值周围加上"。否则,浏览器认为该属性在(marker,部分之后的下一个空格处结束。

$('#results')
 .append('<DIV id="'
 + A.pid + '"'
 + ' onmouseover="function(){google.maps.event.trigger(marker, 'mouseover');};"><H3>'
 + A.name
 + '</H3></DIV>');

几件事

  1. 不要把所有的HTML都大写。现在是21世纪,不是20世纪。
  2. onmouseover事件不需要匿名函数
  3. 将属性值用单引号或双引号括起来(我在下面使用双引号)。
  4. 阅读JavaScript字符串和引号。

试试这个

    $('#results').append('<div id="' +
    A.pid +
    '" onmouseover="google.maps.event.trigger(marker, 'mouseover');"><h3>' +
    A.name +
    '</h3></div>');

相关内容

最新更新