css onmouseover 导致 DOM 错误

css onmouseover causing DOM error

我有一个 php 生成的 HTML 我想在其中添加一些 css onmouseover 功能,如下所示

<span id='".$id."' class='userInfo' onmouseover='hoverdiv(event,'popupUserInfoDiv')' onmouseout='hoverdiv(event,'popupUserInfoDiv')'>".$c["test"]."</span>

甚至还没有添加 javascript,如果我将鼠标悬停在 DOM 的开头,我会收到以下错误:

SyntaxError: Unexpected token '}'

编辑:抱歉,如果我不够清楚,但我的代码是 PHP 生成的,所以我不能使用任何双引号?我试过了,但它破坏了我的页面

您要提前结束通话。

onmouseover='hoverdiv(event,'popupUserInfoDiv')'

应该是

onmouseover='hoverdiv(event,"popupUserInfoDiv")'

onmouseout='hoverdiv(event,'popupUserInfoDiv')'

".$c["test"]."

你需要使用单引号和双引号,像这样:

<span id='".$id."' class='userInfo' onmouseover="hoverdiv(event,'popupUserInfoDiv')" onmouseout="hoverdiv(event,'popupUserInfoDiv')">".$c["test"]."</span>

否则解析器会混淆。

在这种情况下,我对 HTML 属性使用双打,对 JS 属性使用单打。有效。

由于您已经对 PHP 字符串使用双引号,对 HTML 属性使用单引号,因此您将无法对 [=19] 使用单引号=].

hoverdiv(event,'popupUserInfoDiv')

将您的 PHP 字符串转换为字符串块,这样应该可以释放您的双引号,请参阅下面的字符串块示例。

<?php
    $str = <<<EOF
        <p>Hello</p>
        <p><?php echo _("World"); ?></p>
    EOF;
?>