Javascript - 操纵和使用此变量

时间:2014-04-29 08:35:11

标签: javascript

我正在尝试使用此函数来更改另一个元素的类和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

2 个答案:

答案 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和简单示例