Цикл JQuery над объектами JQueryObjects - PullRequest
2 голосов
/ 11 декабря 2008

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

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

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

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

Я делаю это:

JQuery ( "div.SectionContainer"). Каждая ( function (i, valueOfElement) {
CalculateSectionCompletion (valueOfElement);
});

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

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

Ответы [ 2 ]

4 голосов
/ 11 декабря 2008

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

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

jQuery("div.SectionContainer").each( function(i, valueOfElement){
  CalculateSectionCompletion($(valueOfElement));
});
2 голосов
/ 11 декабря 2008

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

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

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

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

function CalculateSectionCopletion(e){
  jQuery(e).dostuff();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...