如何判断传入的元素是一个还是多个元素?

时间:2011-11-11 21:10:35

标签: class mootools element elements

我正在学习如何使用Mootools'Class,我试图找出如何检测传入的元素是否只是一个元素(例如,$('foo')),或者一个Elements实例(例如$$('.class'))。

我尝试使用typeOf,但两个示例都返回了“object”类型。

我知道许多Mootools函数可以应用于Element实例和Elements实例,但是我的类需要知道它接收的是什么,否则它将不知道迭代所有传入的元素,例如

有没有办法可以区分两者?

1 个答案:

答案 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运算符都会返回“对象”。