Javascript无法从此PHP代码

时间:2018-03-25 12:57:11

标签: javascript php

将标题变为红色并不是我想要实现的,我实际上是在尝试运行jQuery代码,但这只是为了表明(可能)针对DOM元素是问题,因为一个简单的警报()的工作原理。

此外,不在此处工作的Javascript代码在此if语句之外也可以工作。

if(!empty($_POST['description'])) {
    $query = $con->prepare('insert into tasks (user_id, description) values (?,?)');
    $query->execute(array($_SESSION['user_id'], $_POST['description']));

    ?>
    <script>
        alert('hi');  //works
        document.querySelector('header').style.color = 'red';  //doesn't work
    </script>
    <?php   
}

2 个答案:

答案 0 :(得分:0)

如果您的脚本在头元素位于DOM之前执行,则querySelector将无法找到它,因为它不存在。

尝试此操作以在解析整个DOM之后让脚本执行(例如<html> ... </html>之间的所有内容):

document.addEventListener("DOMContentLoaded", function(){
    document.querySelector('header').style.color = 'red';
});

答案 1 :(得分:0)

您的JavaScript代码可能会在呈现标题之前执行,请务必在页脚之后启动此代码。 您的页面中可能还有多个标题元素,而querySelector的目标是错误的。