Вам не обязательно делать все в jQuery. Просто добавьте метод forEach
, если он еще не существует, и используйте его вместо этого. Это было так хорошо, что ECMAScript 5-е изд. принял его как стандарт (вдохновленный каждым методом Prototype), но еще не во всех браузерах он есть :). Вот реализация спецификации, которую вы можете использовать, пока она не будет у всех браузеров ( взята из MDC ):
Редактировать : последние версии Chrome, Safari, Firefox и Opera уже поддерживают это. Нет доступа к IE, извините.
if (!Array.prototype.forEach)
{
Array.prototype.forEach = function(fun /*, thisp*/)
{
var len = this.length >>> 0;
if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this)
fun.call(thisp, this[i], i, this);
}
};
}
Затем используйте свой код как есть (измените each
на forEach
):
var myArray = ["a","b","c"];
myArray.forEach(function(arrayEntry) {
this.printPart(arrayEntry);
}, this);