Вопрос выбора jQuery - PullRequest
       13

Вопрос выбора jQuery

1 голос
/ 01 октября 2010

У меня быстрый вопрос по поводу селекторов jQuery.

делает это:

$('.class_el_1, .class_el_2').hide();

То же самое, что просто проходить через каждый элемент с помощью функции jeuery .each?

1 Ответ

4 голосов
/ 01 октября 2010

Он имеет тот же эффект , что скрывает их всех, но это не совсем то же самое внутри, нет. .each() принимает обратный вызов, в котором this может использоваться для выполнения определенных действий с каждым элементом, поэтому он выполняет немного больше работы .hide() в цепочке просто устанавливает display: none; для элементов (сохраняя их предыдущее значение).

Вы можете увидеть, как это работает внутри, здесь , для вашего звонка без параметров:

for ( var i = 0, l = this.length; i < l; i++ ) {
  var old = jQuery.data(this[i], "olddisplay");
  if ( !old && old !== "none" ) {
    jQuery.data( this[i], "olddisplay", jQuery.css( this[i], "display" ) );
  }
}

// Set the display of the elements in a second loop
// to avoid the constant reflow
for ( var j = 0, k = this.length; j < k; j++ ) {
  this[j].style.display = "none";
}

В вышеприведенном this относится к набору элементов, который соответствует $('.class_el_1, .class_el_2'), просто используя цикл for для их надписи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...