Javascript 错误“Null 不是对象”,带有动态创建的 html 表
Javascript Error "Null is not an Object" with a dynamically created html table
我有一个动态创建的html表格,每行的最后一个单元格中都有一张图片(如.png(。我想实现的是,在用户点击这张图片后,再播放一张图片(如1.png(。但是我一直得到"Null 不是对象",我的 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')"/>
相关文章:
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 在动态创建的元素上获取对特定选择器的引用
- JQuery对动态创建的对象进行选择
- 使用jquery动态创建ul-li
- 从动态创建的html选择中选择所选选项
- 如何在动态创建的节点上绑定函数
- 动态创建OnClick事件Javascript
- 谷歌地图动态创建的标记点击事件使用相同的标记
- 在动态创建的标记上添加事件
- 动态创建一个javascript/jquery多级数组
- 如何动态创建许多Jquery颜色选择器(eyecon)
- 如何为动态创建的文本区域中输入的值更新ng模型
- 对动态创建的元素运行jQuery.ech()
- 使用jQuery访问动态创建的项
- 动态创建的iframe中的window.onerror在lne 0处给出脚本错误
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 我想将链接关联到动态创建的p元素上的相应文章
- AngularJs从列表中动态创建指令
- 使用javascript动态创建html内容/元素