Как я могу сказать, передано ли в элементе один или несколько элементов? - PullRequest
1 голос
/ 12 ноября 2011

Я изучаю, как использовать Mootools Class , и пытаюсь выяснить, как определить, является ли переданный элемент одним элементом (например, $('foo')), или Экземпляр элементов (например, $$('.class')).

Я пытался использовать typeOf, но оба примера возвращают мне тип «объект».

Мне известно, что многие функции Mootools могут применяться как к экземпляру Element, так и к экземпляру Elements, но мой класс должен знать, что он получает, иначе он не будет знать, например, для перебора всех переданных в элементах элементов. .

Есть ли способ, которым я могу различить два?

1 Ответ

2 голосов
/ 12 ноября 2011

Функция typeOf в mootools должна быть адекватной, я бы посоветовал вам проверить свой код, чтобы убедиться, что проблема не в другом месте.Тем не менее, вы также можете проверить наличие функции '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 (docs: 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 * ", где единственным элементом является" элемент "- обратите внимание на" s ". Оператор Javascript typeof будет возвращать" объект "в обоих случаях.

...