【问题标题】:Onclick Word Replacement not working correctly with PHP [closed]Onclick Word Replacement 无法与 PHP 一起正常工作 [关闭]
【发布时间】:2019-07-31 07:29:24
【问题描述】:

我有这个代码:

<a class='show' data-id='".$random."' href='javascript:void(0)' onclick='if(this.innerHTML == 'Click Here to Read More'){this.innerHTML = 'Click Here to Read Less'}else{this.innerHTML = 'Click Here to Read More'}'>Click Here to Read More</a>

当返回页面时,尽管返回的所有内容都很奇怪,并且源代码中缺少项目,如下所示:

<a class="show" onclick="if(this.innerHTML == " href="javascript:void(0)" data-id="23272317" }'="" }else{this.innerhtml="Click Here to Read More" more'){this.innerhtml="Click Here to Read Less" read="" to="" here="" click="">Click Here to Read More</a>

我确信它就像报价问题一样简单,但我卡住了。任何人都可以为我指出正确的方向或解释仅使用 javascript 如何或为什么会发生这种情况?

【问题讨论】:

  • 所以,你有 ' 包含属性和 ' 包含 Click Here
  • 你的onclick 属性用' 引用,所以值从第一个' 开始,所以你的onclickonclick='if(this.innerHTML == '。在属性值周围使用双引号 (") 并在其中使用单引号,反之亦然,或者在值中使用字符实体(因为属性文本是 HTML)。
  • T.J.克劳德非常感谢您的帮助,谢谢。我想我只需要 \" 而不是 " 或 '。当我换掉双引号时,双引号也没有解决问题。

标签: javascript php quotes


【解决方案1】:

我想你用echo输出这段代码:

echo "<a class='show' data-id='".$random."' href='javascript:void(0)' onclick='if(this.innerHTML == \"Click Here to Read More\"){this.innerHTML = \"Click Here to Read Less\"} else {this.innerHTML = \"Click Here to Read More\"}'>Click Here to Read More</a>";

请注意,我将 Click Here to ... 周围的 ' 替换为转义的 ",因为:

  • ' 已用于封装属性数据
  • " 附上你 echo 的完整字符串

【讨论】:

    猜你喜欢
    • 2016-08-29
    • 2013-10-10
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    相关资源
    最近更新 更多