【发布时间】:2012-10-10 14:07:35
【问题描述】:
背景:我正在为 WordPress 3.4.2 编辑一个自定义管理页面,这是我正在制作的插件的一部分。
我的 HTML 中有一些 PHP 代码的 sn-p 代码,用于检查变量是否存在并在它有值时打印它:
<div id='ajax-response'>
<?php
if(isset($_infos) && !empty($_infos)){
echo $_infos;
}
?>
</div>
但是,当页面以一种意味着变量具有值的方式运行时,输出实际上不在 #ajax-response <div> 内部,而是直接在其上方,如下所示:
<div id="message" class="updated fade"><p>Download display details updated.</p></div>
<div id='ajax-response'></div>
#ajax-response <div> 的全部意义在于包含来自页面本身和任何 AJAX 调用的所有反馈,因此它们都以相同的样式显示在一起 - 并且都可以从页面很容易 - 所以这很烦人。
最奇怪的是,当我查看源代码时,它应该在 #ajax-response <div> 内,但在 Chrome 的检查器中以及当被 Javascript 引用时,它被视为在 <div> 之外。
任何想法为什么会发生这种情况?
【问题讨论】:
-
能否请您在查看源代码中显示它的外观?
-
您的其他 HTML 代码是否有效?想知道是否有一个
<div>没有正确打开/关闭,这会导致嵌套问题...... -
PHP 不可能按照您所说的方式重新排列您的输出。您必须在客户端使用 javascript 来执行此操作,或者您的 HTML 页面已损坏并且浏览器正在尝试纠正损坏。
-
浏览器尝试修复无效的 HTML,但经常出错。你试过an html validator吗?
-
不太可能对您的事业有所帮助,但您绝对应该保持双引号和单引号的使用一致。我会选择双引号,因为我不记得经常看到单引号。