- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 PHP 输出多行信息。我试图向每一行添加隐藏/显示。我“ID”该行,然后添加一个简单的文本“隐藏/显示”按钮,该按钮引用 ID 的行并尝试切换“显示”属性。
我尝试转义引号,将其更改为单引号,添加/删除括号。我不知所措。
echo "<table width=\"640\" style=\"margin-left: auto; margin-right: auto;\"><tr id=\"JEntry".$data['ID']."\" style=\"display: visible\"><td><button onmousedown=\"javascript: if (document.getElementById(\"JEntry".$data['ID']."\").style.display != \"visible\") { document.getElementById(\"JEntry".$data['ID']."\").style.display = \"visible\"; } else { document.getElementById(\"JEntry".$data['ID']."\").style.display = \"none\"; }\">Hide or Show</button>";
意外的 token “}”
最佳答案
你的 PHP 代码没问题。但是,生成的 HTML 需要对其属性进行转义。
例如,您的代码输出类似
<button onmousedown="javascript: if (document.getElementById("JEntry")) {}"></button>
正如您希望看到的那样,JavaScript 中的引号与属性值的引号相匹配。这将导致解析问题。
要解决此问题,请在 javascript 中使用单引号
<button onmousedown="javascript: if (document.getElementById('JEntry')) {}"></button>
或者逃避他们。
<button onmousedown="javascript: if (document.getElementById(\"JEntry\")) {}"></button>
在我看来,第一个选项看起来更整洁,特别是如果您考虑需要转义反斜杠 (\
)。所以你的固定代码是
echo "<table width=\"640\" style=\"margin-left: auto; margin-right: auto;\"><tr id=\"JEntry".$data['ID']."\" style=\"display: visible\"><td><button onmousedown=\"javascript: if (document.getElementById('JEntry".$data['ID']."').style.display != 'visible') { document.getElementById('JEntry".$data['ID']."').style.display = 'visible'; } else { document.getElementById('JEntry".$data['ID']."').style.display = 'none'; }\">Hide or Show</button>";
阅读此内容的方法是,未转义双引号 ("
) 是 PHP 的一部分,转义双引号 (\"
) 是 HTML 的一部分,单引号是('
) JS 的一部分。
关于javascript - 为什么我在这行代码上不断收到 "unexpected token"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56589154/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!