动态创建的 html 表出现 Javascript 错误 "Null is not an Object"

标签 javascript php mysql

我有一个动态创建的 html 表格,每行的最后一个单元格中有一张图片(如 .png)。我想要实现的是用户单击这张图片后显示另一张图片(如1.png)。然而我不断收到“Null is not an Object”,我的 javascript 代码可能有问题......

感谢您的帮助:)

这是我创建表的 php :

<?php
$pictureid = 1;

            while($results = mysql_fetch_array($raw_results)){
            // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop

            echo '<tr>';
            echo'<td>'. ucfirst($results['song_name']).'</td>';
            echo'<td>'. ucfirst($results['song_artist']).'</td>';
            //echo'<td>'. ucfirst($results['song_album']).'</td>';

                echo '<td>';

                echo  '<img src="images/like.png" id="artist'.$pictureid.'" onClick="action(artist'.$pictureid.')"/></a>';
                echo '</td>'; 
                echo '</tr>';

                $pictureid = $pictureid + 1;

                }

这是我的 JavaScript :

<script language="javascript">
   function action(imageid)
{
if(document.getElementById(imageid).src == 'like.png' )
document.getElementById(imageid).src = 'like1.png';
else
document.getElementById(imageid).src = 'like1.png';
}
</script>          

最佳答案

您在这里缺少一些引号:

echo  '<img ... onClick="action(\'artist'.$pictureid.'\')"/></a>';
// quotes missing here ----------^---------------------^

在您的输出 HTML 中,它当前应如下所示:

<img ... onClick="action(artist1)"/>

这将调用方法 action() 并使用名称为 artist1 的变量,该变量不存在。因此,在您的方法 document.getElementById() 中返回 null 并且您会收到错误。

但是,您的方法需要字符串输入,因此您应该用引号将参数括起来,以便它生成如下输出:

<img ... onClick="action('artist1')"/>

关于动态创建的 html 表出现 Javascript 错误 "Null is not an Object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18985484/

相关文章:

php - Symfony2/FOS 用户包 - 注册后记住我

php - 使用正则表达式解析 SQL,排除带引号的文字

php - PHP 变量查询的一部分

mysql - 在 SQL 中计算多个值

javascript - ng-repeat 出现问题,获取 "MainCtrl is not a function, got undefined"

javascript - map API v3 : Calculate bearing

javascript - 如何让 nodemon 监视 dotenv-flow 文件?

javascript - 动态组装 var

php - Xdebug 在 Mac m1 上安装失败

mysql - 为什么此 SQL 查询返回错误?