Powiedzmy, że jest to nasza funkcja:

$('ul li').bind('click', function(){

   $('iframe').each(function(){
        // who is this???
        alert(this);
   });

});

Jak widać, jest zdanie. (), Który jest używany $(this)

Jaki element zostanie przywołany $(this) ??? ul li? lub iframe? Próbuję, jak można odgadnąć, aby wybrać każdą iframe (na stronie internetowej, nic wspólnego z Ul Li, Tam)

Pytam to, ponieważ otrzymuję nieoczekiwane wyniki w sposób większa,

1
Toni Michel Caubet 7 październik 2011, 14:55

3 odpowiedzi

Najlepsza odpowiedź

this odnosi się do obiektu najbardziej specyficznego zakresu funkcji.

$('ul li').bind('click', function(){

    // this = [ul li]

    $('iframe').each(function(){

        // this = [iframe]

    });
});

Jeśli chcesz odwołać się do wersji ul li this z wewnętrznej funkcji wewnętrznej {x2}}, musiałbyś utworzyć zamknięcie wokół niego, podobnie jak:

$('ul li').bind('click', function () {
    // cache this
    var that = this;

    $('iframe').each(function () {

        // here, this = [iframe] and
        //       that = [ul li]

    });
});
1
Richard Neil Ilagan 7 październik 2011, 11:13

http://api.jquery.com/each/

HTML:

<ul>
    <li>foo</li>
    <li>bar</li>
  </ul>

JavaScript:

   $('li').each(function(index) {
        alert(index + ': ' + $(this).text());
      });

Wyjście alarmowe:

0: foo

1: bar

this będzie odnosić się do obiektów iframe. Powyższy kod jest pobierany z dokumentacji jQuery.

Możesz powiedzieć nam, jakie oczekiwane rezultaty i może opublikować cały kod tutaj.

1
Kemal Fadillah 7 październik 2011, 10:56

Odnosi się do iframe U można je sprawdzić stąd http://jsfiddle.net/x2xyu/1/

1
Sedat Başar 7 październik 2011, 11:01