Javascript 按ID获取元素不起任何作用

Javascript 按ID获取元素不起任何作用,javascript,php,css,mysqli,Javascript,Php,Css,Mysqli,在我的PHP文档中,我从例如myDatabase中提取数据。然后,我继续从数据库中的表中为变量赋值。我知道这个变量正好是$fileLoc1,当我把 echo $fileLoc1; 它返回一个值,或者在我的例子中返回一个文件的url。基本上,这会告诉用户是否有文件可供下载。我有下面的代码来检查这个 if ($fileLoc1 === NULL) { echo "<script> document.getElementById ('alert-sn

在我的PHP文档中,我从例如myDatabase中提取数据。然后,我继续从数据库中的表中为变量赋值。我知道这个变量正好是$fileLoc1,当我把

echo $fileLoc1; 
它返回一个值,或者在我的例子中返回一个文件的url。基本上,这会告诉用户是否有文件可供下载。我有下面的代码来检查这个

if ($fileLoc1 === NULL) { 
    echo "<script>
             document.getElementById ('alert-sng-available').style.display 
                   = 'none !important';
          </script>"; 
    echo "<script>
              document.getElementById ('alert-sng-Navailable').style.display 
                   = 'block !important';
          </script>";
} 
你能猜出发生了什么吗?没有什么。绝对没有。下图显示了两次尝试的结果。在第二段代码中,绿色的
div
应该消失,被红色的
div
取代。(是的,我使用的是引导,这就是为什么我使用!重要的,但无论有没有它都不起作用)

将if语句从
===
更改为
后,下一张图片将在HTML中显示标记==

这在inspect元素中,清除显示php评估的!==等式为true,这是正确的,但现在javascript不起作用

让我们用
==
公式再试一次。它起作用了!没有脚本标记,因为它的计算结果应为false

我在这里不知所措。

是的,div标记正确,没有引导程序不干扰因为如果我使用“ctrl+shift+I”更改
警报sng
div的属性,它会正常工作!另外,是的,我的javascript在页面底部

显示它可以工作的gif
您不应该使用PHP–JS–HTML/CSS管道。事实上,您可以简单地依靠PHP本身来指定页面本身上显示/隐藏的内容

由于您的代码中没有提供任何标记,因此我将使用一个假设的示例。假设您希望在
$fileLoc1
变量不为空且
文件不可用时打印
文件可用

,否则,我们可以执行以下操作:

<?php
if ($fileLoc1 === NULL) {
    echo '<p>File available</p>';
} else {
    echo '<p>File not available</p>';
}
?>

如果您希望两个标记都存在,以便以后可以使用JS对其进行操作,您甚至可以打印这两个标记,并有条件地指定样式:

<p style="<?php echo $fileLoc1 === NULL ? 'display: none': 'display: block'; ?>">File available</p>
<p style="<?php echo $fileLoc1 === NULL ? 'display: block': 'display: none'; ?>">File not available</p>

你能试着把你的js代码放到window.onload=function(){//your code}中吗?拿出
!重要信息
在您的javascript中,它为我工作。这把小提琴有
!重要信息
在javascript中,但不起作用。但是当你取出它时,它工作得很好。你必须等待DOM被加载。为什么你要经历PHP-JS-CSS/HTML循环,而你可以简单地使用PHP来确定有条件地将什么标记打印到页面上?例如,您可以使用
echo$fileLoc1===NULL?“xxx':'yyy'你完全没有抓住要点。你甚至不需要使用JS。只需打印适当的HTML代码来代替
xxx
yyy
,例如
echo$fileLoc1==NULL?“ 文件不可用:“文件可用”

问题是,您根本不需要依赖JS来显示/隐藏元素。
<?php
echo $fileLoc1 === NULL ? '<p>File available</p>' : '<p>File not available</p>';
?>
<p style="<?php echo $fileLoc1 === NULL ? 'display: none': 'display: block'; ?>">File available</p>
<p style="<?php echo $fileLoc1 === NULL ? 'display: block': 'display: none'; ?>">File not available</p>
<p style="display: none">File available</p>
<p style="display: block">File not available</p>