我正在尝试使用此函数来更改另一个元素的类和onclick。
partner = this.id + 'Content';
document.getElementById(partner).className = 'newswrapper';
document.getElementById(partner).onclick = function(){ clickNews(this); } ;
带有onclick的元素的id看起来像这样。
echo'<div id="newsSlide'.$counter.'" class="newsimage"
onclick="clickNews(this)"
style='."'".'background-image:url("../img/'.$row['image'].'")'".'>';
并且应该更改其类的元素看起来像这样
echo'<div id="newsSlide'.$counter.'Content" class="newswrapper">';
得到错误 未捕获的TypeError:无法设置属性&#39; className&#39;为null
echo'<script>';
echo"function clickNews(id)
{
var y = document.getElementsByClassName('newswrapper');
var x = document.getElementsByClassName('newswrapper2');
var length = y.length,
element = null;
for (var i = 0; i < length; i++) {
element = y[i];
element.className = 'newswrapper2';
}
var length = x.length,
element = null;
for (var i = 0; i < length; i++) {
element = x[i];
element.className = 'newswrapper2';
}
partner = this.id + 'Content';
document.getElementById(partner).className = 'newswrapper';
document.getElementById(partner).onclick = function(){ clickNews(this); } ;
}";
echo'</script>';
可以找到html 在这里:http://pastebin.com/6xBNBQwZ 或者您可以在此处的实际页面上使用HTML检查器 在这里:http://www.uk-sf.com/indextest.php
答案 0 :(得分:5)
你错过了document.
:
document.getElementById(partner).className = 'newswrapper';
getElementById
是文档的方法,而不是窗口;)
答案 1 :(得分:0)
this.id
中的partner = this.id + 'Content'
是指窗口对象上的全局变量id而不是元素的id,因此partner
变量看起来不是全局变量undefinedContent
onclick="clickNews(this.id)"
1}}
所以改变function clickNews(id)
{
partner = id + 'Content'; // use id form arguments
}
而不是使用参数中的id
{{1}}
fiddle和简单示例