将标题变为红色并不是我想要实现的,我实际上是在尝试运行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
}
答案 0 :(得分:0)
如果您的脚本在头元素位于DOM之前执行,则querySelector将无法找到它,因为它不存在。
尝试此操作以在解析整个DOM之后让脚本执行(例如<html>
... </html>
之间的所有内容):
document.addEventListener("DOMContentLoaded", function(){
document.querySelector('header').style.color = 'red';
});
答案 1 :(得分:0)
您的JavaScript代码可能会在呈现标题之前执行,请务必在页脚之后启动此代码。 您的页面中可能还有多个标题元素,而querySelector的目标是错误的。