Цикл JQuery над объектами JQueryObjects

У меня есть метод, который будет принимать параметр объекта JQuery и будет рассчитывать итоги для раздела. Так что, если вы дадите ему объект JQuery для div, содержащего раздел, он вычислит для него сумму

так что вы можете сделать это:

var $ totalcompletion = CalculateSectionCompletion (jQuery ("# ​​Section1"));

Теперь у меня есть несколько div с классом контейнера раздела. Я хочу иметь возможность вызывать вышеуказанный метод для любого div с этим классом.

Я делаю это:

jQuery ("div.SectionContainer"). each (function (i, valueOfElement) {
CalculateSectionCompletion (valueOfElement);
});

Проблема в том, что valueOfElement на самом деле является объектом DOM, а не объектом JQuery, поэтому я не могу передать это моему методу.

Можно ли в любом случае пройти через все объекты JQuery, выбранные запросом, без написания какого-либо грязного кода для извлечения идентификатора из объекта DOM, вызова JQuery (valueOfElement.id) и его передачи?

11.12.2008 09:30:30
2 ОТВЕТА
РЕШЕНИЕ

Вы можете обернуть любой элемент DOM в $ (..), как и в случае с $ (document).

Поэтому я думаю, что вы должны быть в состоянии

jQuery("div.SectionContainer").each( function(i, valueOfElement){
  CalculateSectionCompletion($(valueOfElement));
});
4
11.12.2008 09:41:03

Вы также можете полностью игнорировать аргументы i и valueOfElement и использовать это .

jQuery("div.SectionContainer").each(function(){
  CalculateSectionCompletion(jQuery(this));
});

Вы даже можете заставить функцию CalculateSectionCompletion обернуть ее аргумент в объект jQuery.

jQuery("div.SectionContainer").each(function(){
  CalculateSectionCompletion(this);
});

function CalculateSectionCopletion(e){
  jQuery(e).dostuff();
}
2
11.12.2008 10:04:04