2008-12-11 4 views
2

У меня есть метод, который примет параметр объекта JQuery и рассчитает итоговые значения для раздела. Так что, если вы даете ему JQuery объект DIV, содержащей секцию он будет рассчитывать в общей сложности за этоJQuery Loop over JQueryObjects

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

вар $ totalcompletion = CalculateSectionCompletion (JQuery («# Раздел1»));

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

Я делаю это:

JQuery ("div.SectionContainer") каждый ( функция (я, valueOfElement) {
CalculateSectionCompletion (valueOfElement);
});

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

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

ответ

4

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

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

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

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

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

Можно даже сделать функцию CalculateSectionCompletion обернуть это аргумент в объекте JQuery.

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

function CalculateSectionCopletion(e){ 
    jQuery(e).dostuff(); 
}