我正在学习如何使用Mootools'Class,我试图找出如何检测传入的元素是否只是一个元素(例如,$('foo')
),或者一个Elements实例(例如$$('.class')
)。
我尝试使用typeOf,但两个示例都返回了“object”类型。
我知道许多Mootools函数可以应用于Element实例和Elements实例,但是我的类需要知道它接收的是什么,否则它将不知道迭代所有传入的元素,例如
有没有办法可以区分两者?
答案 0 :(得分:2)
mootools中的typeOf
功能应该足够了,我建议你检查你的代码,以确保问题不在其他地方。也就是说,您还可以检查'each'函数是否存在,这是mootools扩展的数组原型的一部分:
<div class="myClass"></div>
<div class="myClass"></div>
<div class="myClass"></div>
<div class="myClass"></div>
<div id="myId"></div>
console.log(typeof $$('.myClass').each); // function
console.log(typeof $('myId').each); // undefined
但是,mootools函数typeOf
(文档:http://mootools.net/docs/core/Core/Core#Core:typeOf)应该为您提供最佳信息。请确保您没有使用javascript的内置运算符typeof
(我在上面的示例中使用),但moootools函数typeOf
如下:
console.log(typeOf($$('.myClass'))); // elements
console.log(typeOf($('myId'))); // element
请在此处查看:http://jsfiddle.net/49DwN/
另请注意,一组元素的typeOf
返回值为“element * s *”,其中单个元素为“element” - 请注意那里的“s”。对于这两种情况,Javascript的typeof
运算符都会返回“对象”。