日期:2014-05-16  浏览次数:20322 次

求解object[object object] has no method 'getElementByTagName'错误
//获取ID
var $ = function (id) {return typeof id === "string" ? document.getElementById(id) : id};
 
//获取tagName
var $$ = function (tagName, oParent) {return (oParent || document).getElementsByTagName(tagName)};
 
//自动播放对象
var AutoPlay = function (id) {this.initialize(id)};
 
AutoPlay.prototype = {
initialize: function (id)
{
var oThis = this;
this.oBox = $(id);
this.oUl = $$("ul", this.oBox)[0];
this.aImg = $$("img", this.oBox);
this.timer = null;
this.autoTimer = null;
this.iNow = 0;
this.creatBtn();
this.aBtn = $$("li", this.oCount);
this.toggle();
this.autoTimer = setInterval(function ()
{
oThis.next()
}, 3000);
this.oBox.onmouseover = function ()
{
clearInterval(oThis.autoTimer)
};
this.oBox.onmouseout = function ()
{
oThis.autoTimer = setInterval(function ()
{
oThis.next()
}, 3000)
};
for (var i = 0; i < this.aBtn.length; i++)
{
this.aBtn[i].index = i;
this.aBtn[i].onmouseover = function ()
{
oThis.iNow = this.index;
oThis.toggle()
}
}
},
creatBtn: function ()
{
this.oCount = document.createElement("ul");
this.oFrag = document.createDocumentFragment();
this.oCount.className = "count";
for (var i = 0; i < this.aImg.length; i++)
{
var oLi = document.createElement("li");
oLi.innerHTML = i + 1;
this.oFrag.appendChild(oLi)
}
this.oCount.appendChild(this.oFrag);
this.oBox.appendChild(this.oCount)
},
toggle: function ()
{
for (var i = 0; i < this.aBtn.length; i++) this.aBtn[i].className = "";
this.aBtn[this.iNow].className = "current";
this.doMove(-(this.iNow * this.aImg[0].offsetHeight))
},
next: function ()
{
this.iNow++;
this.iNow == this.aBtn.length && (this.iNow = 0);
this.toggle()
},
doMove: function (iTarget)
{
var oThis = this;
clearInterval(oThis.timer);
oThis.timer = setInterval(function () 
{
var iSpeed = (iTarget - oThis.oUl.offsetTop) / 5;
iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
oThis.oUl.offsetTop == iTarget ? clearInterval(oThis.timer) : (oThis.oUl.style.top = oThis.oUl.offsetTop + iSpeed + "px")
}, 30)
}
};
window.onload = function()
{
new AutoPlay("slide");
};



提示错误:
var $$ = function (tagName, oParent) {return (oParent || document).getElementsByTagName(tagName)};
uncaught typeerror: object[object object] has no method 'getElementByTagName'

求解~~

------解决方案--------------------
探讨

引用:

引用:

你的方法写错了,应该是:getElementsByTagName你少写了一个s了。

var $$ = function (tagName, oParent) {return (oParent || document).getElementsByTagName(tagName)};
有S啊



return (oPa……