Ответ 1
Это то, что jQuery делает с .each
, в основном:
$.fn.each = function(callback) {
var i, length = this.length;
for(i = 0; i < length; ++i) {
callback.call(this[i]);
}
};
Так что не сложно подставить свою анонимную функцию "содержимое" вызовом callback.call
. Просто не забудьте заменить this
на временный объект jQuery.
Преобразование кода:
var foo = $this.find("div.class"),
fooLength = foo.length,
i,
$thisparent;
for (i = 0; i < fooLength; ++i) {
$thisparent = $(foo[i]).parent();
if (condition) {
$(foo[i]).prepend($thisparent.text());
}
if (condition2) {
$(foo[i]).prepend($thisparent.text());
}
}
Для дополнительной (потенциальной) скорости кешируйте foo[i]
во временную. тоже, и назначьте $thisparent
только при необходимости. Если condition
и condition2
являются взаимоисключающими, используйте один if (condition || condition2)
.