【问题标题】:Browser commenting out the code inserted using JS [closed]浏览器注释掉使用 JS 插入的代码 [关闭]
【发布时间】:2025-12-26 19:45:10
【问题描述】:

我正在尝试使用 JS 将 php echo 语句插入 div 标签, 但是浏览器正在注释掉代码。

   <!--?php echo $desci[1]?-->

这是我的代码,我是JS新手,请帮忙

   $('.wrapinner').click(function(e) {
         $('.wrapinner').css("margin-top","0");
         $('.wrapinner').css("opacity","0.4");
         $(this).css("margin-top","25px");
         $(this).css("opacity","1");
         var id = this.id;
         var str = "<";
         str+= "?php echo $desci[";
         str+= id;
         str+= "]?>";
         document.getElementById("con").innerHTML=str;

    });

【问题讨论】:

  • 重要的是,您为什么要在 HTML 代码中添加 PHP 语句?
  • 我觉得你需要google一下客户端代码和服务器端代码的区别。
  • 我不明白为什么这会被否决。他们遇到了问题,来这里寻求帮助。这只是他们犯的一个错误,我认为没有必要对这样的事情投反对票。
  • @CleanX 你是什么意思?如果您想将其输出为文本,那是可能的。如果您想尝试运行代码,则不。它是一种服务器端语言。 JS 是客户端。
  • @CleanX PHP 必须在服务器端运行。加载页面时,代码在服务器上运行。如果你在那之后插入 PHP,那么它什么都不做,因为它没有被服务器读取,它现在正在被客户端读取。这就是您的 JQuery 动态工作并且您可以通过浏览器查看其代码的原因。希望这会有所帮助。

标签: javascript php jquery html dom


【解决方案1】:
     var str = "<";
     str+= "?php echo $desci[";
     str+= id;
     str+= "]?>";
     document.getElementById("con").innerHTML=str;

当你给innerHTML赋值时,它被解析为HTML。

&lt;?php echo $desci[1]?&gt; 不是有效的 HTML 代码。在 XML 中,可能被视为一种处理指令(以&lt;? 开头)——但不是您的浏览器能够理解的。

如果您只想将其显示为 text - 然后将其 assign 作为文本:

document.getElementById("con").textContent=str;

或者首先使您的字符串内容无法解释为 HTML,方法是正确转义 &amp;lt;&amp;gt;,如 &amp;lt;&amp;gt;

【讨论】: