Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';风格';关于回音中的脚本的空值_Javascript_Php_Jquery_Css_Echo - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';风格';关于回音中的脚本的空值

Javascript 未捕获类型错误:无法读取属性';风格';关于回音中的脚本的空值,javascript,php,jquery,css,echo,Javascript,Php,Jquery,Css,Echo,我正在尝试更改onclick事件上div的颜色 下面是我得到的错误: 未捕获的TypeError:无法读取null的属性“style” 代码如下: function changeSelection (newClick) { document.getElementById(newClick).style.backgroundColor="#4bc970"; document.getElementById(newClick).style.color="#FFFFFF

我正在尝试更改
onclick
事件上div的颜色

下面是我得到的错误:

未捕获的TypeError:无法读取null的属性“style”

代码如下:

function changeSelection (newClick) {

        document.getElementById(newClick).style.backgroundColor="#4bc970";
        document.getElementById(newClick).style.color="#FFFFFF";
        if(oldClick!="" && document.getElementById(oldClick)!=null && oldClick != newClick){
            document.getElementById(oldClick).style.backgroundColor="#d2d2d2";
            document.getElementById(oldClick).style.color="#332836";
        }
        oldClick = newClick;
    }
回声出现在另一个php页面上

echo ("<tr><td><div class='courseDiv' onclick=changeSelection(".$classID.");><p class='textInsideLeftTable'>".$className. "</p><p class='arrow'>></p></div></td></tr>");
echo(

“$className.”

”;
如有任何意见,将不胜感激

更多代码:

<?php
    require("connect.php");
    session_start();

    $stmt = $db->prepare('SELECT * FROM users INNER JOIN studentparent ON users.parentID = studentparent.parentID INNER JOIN studentsclasses ON studentparent.studentID = studentsclasses.studentID INNER JOIN classes ON classes.classID = studentsclasses.classID WHERE users.parentID=:parentID');
    $stmt->execute(array(
        ':parentID' => $_SESSION['parentID']
    )) or die(var_dump($stmt->errorInfo()));

    $result = $stmt->fetchAll();
    foreach ($result as $row) {
        $className = $row['classCode'];
        $classID = $row['classID'];
        echo ("<tr><td><div class='courseDiv' onclick=\"changeSelection('".$classID."');\"><p class='textInsideLeftTable'>".$className. "</p><p class='arrow'>></p></div></td></tr>"); 
    }
?>

您需要在其周围添加单引号,以便JavaScript将其视为字符串而不是变量

changeSelection('".$classID."')

您需要在其周围添加单引号,以便JavaScript将其视为字符串而不是变量

changeSelection('".$classID."')
getElementById(newClick)为空表示作为newClick传递的id不存在或在当前上下文中找不到

添加语句console.log(newClick);添加到第一行的changeSelection()。并检查控制台(F12开发人员工具),查看传递的值是什么。

文档。getElementById(newClick)为空表示传递为newClick的id不存在或在当前上下文中找不到


添加语句console.log(newClick);添加到第一行的changeSelection()。然后检查控制台(F12开发者工具),看看传递的值是什么。

所以我对PHP的了解非常有限,但据我记忆所及,你不应该使用

changeSelection('"$classID"')
而不是

changeSelection('".$classID."')

为什么$classId前后有两个点,如果您已经将div标记的Id存储在一个名为classId的变量中,那么您只需要$classId就可以获取其值和文档。getElementById(“classId_值”)应该会返回元素。

因此我对PHP的了解非常有限,但据我记忆所及,你不应该使用

changeSelection('"$classID"')
而不是

changeSelection('".$classID."')


如果您已将div标记的Id存储在名为classId的变量中,那么为什么$classId前后有两个点?您只需$classId即可获取其值和document.getElementById(“classId_值”)应该返回元素。

是否检查了$classID的值是否正确,html结构中是否有一个元素具有该id,并且javascript仅在页面加载了所有必需的dom元素后才会触发?是的。如果我取出点击事件并将其放在关闭类courseDiv的>之后,它会显示每个div的正确id(html格式)。我认为这是一个语法错误,我找不到。请在PHP生成div后向我们显示页面。我在原始帖子中添加了一张图片。:)您是否检查了$classID的值是否正确,并且您的html结构中只有一个元素具有该id,并且只有当页面加载了所有必需的dom元素时才会触发javascript?是的。如果我取出点击事件并将其放在关闭类courseDiv的>之后,它会显示每个div的正确id(html格式)。我认为这是一个语法错误,我找不到。请在PHP生成div后向我们显示页面。我在原始帖子中添加了一张图片。:)非常感谢。我已经做了修改,但仍然得到相同的错误。echo(“

”$className.

”;哦,也许还有一件事可能会引起麻烦:整件事也应该放在括号里。像onclick=\“changeSelection(“.classID.”);\“遗憾的是,它仍然没有解决问题,谢谢。我已经做了修改,但仍然得到相同的错误。echo(“

”$className.

”;哦,也许还有一件事可能会引起麻烦:整件事也应该放在括号里。比如onclick=\“changeSelection(.$classID)”;\“遗憾的是,它仍然没有解决我考虑到你所说的问题。我已经尝试过了,但仍然存在相同的问题。是否将ID属性的值存储在classId变量中??还是类属性的值。。例如,text_random然后classId应该包含“div_id”,而不是“div_class”作为classId变量中的值。我真的不明白你在回答的第二部分中的意思。例如,如果你的div看起来像这样。。。text\u random$classID=“div\u id”是正确的。你的代码会工作的$classID=“div\u class”是错误的。根据我的理解,您的代码将无法工作,这是您希望我尝试的:echo(“

”)。$className。”

”;它不起作用。我也试过用$classID。我考虑了你说的话。我已经尝试过了,但仍然存在相同的问题。是否将ID属性的值存储在classId变量中??还是类属性的值。。例如,text_random然后classId应该包含“div_id”,而不是“div_class”作为classId变量中的值。我真的不明白你在回答的第二部分中的意思。例如,如果你的div看起来像这样。。。text\u random$classID=“div\u id”是正确的。你的代码会工作的$classID=“div\u class”是错误的。根据我的理解,您的代码将无法工作,这是您希望我尝试的:echo(“

”)。$className。”

”;它不起作用。我还使用了.classID进行了尝试。如果它打印了正确的id,则表示文档中不存在具有该id的元素。请检查元素是否存在。我已对classID进行了回显,它也给了我相同的值什么是oldClick?它的定义是什么?它从哪里获得价值?还要检查函数中哪一行给出了错误。在我的页面顶部。var oldClick=“”;你在哪一行上出错?您将在控制台(F12开发人员工具)中找到它。如果它打印了正确的id,则表示文档中不存在具有该id的元素。请检查元素是否存在。我已经做了classID的回显,它也给了我相同的值What