Pertanyaan Bagaimana cara mendapatkan anak-anak dari pemilih $ (ini)?


Saya memiliki tata letak yang mirip dengan ini:

<div id="..."><img src="..."></div>

dan ingin menggunakan pemilih jQuery untuk memilih anak img di dalam div di klik.

Untuk mendapatkan div, Saya punya pemilih ini:

$(this)

Bagaimana saya bisa mendapatkan anak itu img menggunakan pemilih?


2042
2017-11-20 19:44


asal


Jawaban:


Konstruktor jQuery menerima parameter ke-2 yang disebut context yang dapat digunakan untuk mengesampingkan konteks seleksi.

jQuery("img", this);

Yang sama dengan menggunakan .find() seperti ini:

jQuery(this).find("img");

Jika imgs yang Anda inginkan hanya keturunan langsung dari elemen yang diklik, Anda juga dapat menggunakan .children():

jQuery(this).children("img");

2687
2017-11-20 21:27



Anda juga bisa menggunakan

$(this).find('img');

yang akan mengembalikan semuanya imgs yang merupakan keturunan dari div


444
2017-11-20 21:23



Jika Anda perlu mendapatkan yang pertama img itu turun satu tingkat, yang bisa Anda lakukan

$(this).children("img:first")

127
2017-07-21 18:47



Jika tag DIV Anda segera diikuti oleh tag IMG, Anda juga dapat menggunakan:

$(this).next();

71
2018-06-21 13:25



Itu langsung anak-anak

$('> .child', this)

56
2017-07-16 20:07



Anda dapat menemukan semua elemen img div tua seperti di bawah ini

$(this).find('img') or $(this).children('img')

Jika Anda ingin elemen img spesifik Anda dapat menulis seperti ini

$(this).children('img:nth(n)')  
// where n is the child place in parent list start from 0 onwards

Div Anda hanya berisi satu elemen img. Jadi untuk ini di bawah ini benar

 $(this).find("img").attr("alt")
                  OR
  $(this).children("img").attr("alt")

Tetapi jika div Anda mengandung lebih banyak elemen img seperti di bawah ini

<div class="mydiv">
    <img src="test.png" alt="3">
    <img src="test.png" alt="4">
</div>

maka Anda tidak dapat menggunakan kode atas untuk menemukan nilai alt elemen img kedua. Jadi Anda dapat mencoba ini:

 $(this).find("img:last-child").attr("alt")
                   OR
 $(this).children("img:last-child").attr("alt")

Contoh ini menunjukkan gagasan umum bahwa bagaimana Anda dapat menemukan objek sebenarnya dalam objek induk. Anda dapat menggunakan kelas untuk membedakan objek anak Anda. Itu mudah dan menyenangkan. yaitu

<div class="mydiv">
    <img class='first' src="test.png" alt="3">
    <img class='second' src="test.png" alt="4">
</div>

Anda dapat melakukan ini sebagai berikut:

 $(this).find(".first").attr("alt")

dan lebih spesifik sebagai:

 $(this).find("img.first").attr("alt")

Anda dapat menggunakan find atau anak-anak seperti kode di atas. Untuk lebih banyak kunjungan, Anak-anak http://api.jquery.com/children/ dan menemukan http://api.jquery.com/find/. Lihat contoh http://jsfiddle.net/lalitjs/Nx8a6/


36
2018-03-22 08:05



Tanpa mengetahui ID DIV, saya pikir Anda dapat memilih IMG seperti ini:

$("#"+$(this).attr("id")+" img:first")

29
2017-11-20 19:56