Поскольку возвращаемое значение each
является объектом, на который вы звоните, each
. Возвращаемое значение функции each
звонки используется для определения того, прекратить ли цикл (то есть, функция итерации может возвращать false
, чтобы остановить цикл — docs link).
Непонятно из вашего кода, что вы действительно хотите сделать в getmyValue
; вернуть значение, которое вы сохранили в самом экземпляре jQuery? Верните myVal
, сохраненный в первом содержащем элементе? Возвращает массив значений myVal
из всех содержащихся элементов?
Если вы означали myVal
сохраненные на экземпляре JQuery вашего плагин:
getmyValue : function(){
// Here, `this` is the jQuery instance on which `getmyvalue` was called
return this.myVal;
},
Если вы означали myVal
на первый элементе (обратите внимание, что это сырье DOM элемент в типичном случае):
getmyValue : function(){
// Here, `this` is the jQuery instance on which `getmyvalue` was called.
// `this[0]` is the first matched element (a raw DOM element, typically).
// Note we check before accessing it to see if it's there, since a jQuery
// instance may have matched zero elements.
return this[0] ? this[0].myVal : undefined;
},
Если вы имели в виду массив myVal
значений всех соответствующих элементов (опять-таки, они будут сырые элементы DOM в типичном случае):
getmyValue : function(){
// Here, `this` is the jQuery instance on which `getmyvalue` was called.
return this.map(function() {
// Here, though, `this` one of the elements wrapped by the jQuery,
// instance typically a raw DOM element. (Each of them in a loop.)
return this.myVal;
}).get();
},
... который использует map
для получения массива значений, зависящих от jQuery, а затем get
, чтобы получить из него необработанный массив.
Вы возвращая результат 'this.each', который не является строкой. Почему бы вам просто не вернуть 'this.myVal'? Непонятно, что вы пытаетесь выполнить. –