Saya menggunakan jQuery dan saya ingin memeriksa keberadaan elemen di halaman saya. Saya telah menulis kode berikut, tetapi tidak berfungsi:
if($("#btext" + i) != null) {
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
Bagaimana cara memeriksa keberadaan elemen?
lenght
bukannyalength
; ini merupakan kesalahan pengejaan..length
.(Karena aku tampaknya tidak memiliki reputasi yang cukup untuk memberikan jawaban ...)
Wolf menulis:
Meskipun benar bahwa memanggil properti panjang pada objek yang tidak terdefinisi atau null akan menyebabkan browser gagal, hasil dari pemilih jQuery ($ ('...')) tidak akan pernah menjadi nol atau tidak terdefinisi. Jadi saran kode tidak masuk akal. Gunakan salah satu dari jawaban lain, itu lebih masuk akal.
(Pembaruan 2012) Karena orang-orang melihat kode dan jawaban ini cukup tinggi dalam daftar: Untuk beberapa tahun terakhir, saya telah menggunakan plugin kecil ini:
Saya pikir $ ('div'). Any () membaca lebih baik dari $ ('div'). Panjang , ditambah Anda tidak akan menderita banyak dari kesalahan ketik: $ ('div'). Ayn () akan memberikan kesalahan runtime , $ ('div'). Panjang akan diam-diam kemungkinan besar selalu palsu.
__
Pengeditan November 2012:
1) Karena orang cenderung melihat kode dan tidak membaca apa yang dikatakan di sekitar kode, saya menambahkan dua catatan lektor peringatan besar ke kode Wolf yang dikutip.
2) Saya menambahkan kode plugin kecil yang saya gunakan untuk situasi ini.
sumber
Fungsi pencarian mengembalikan array elemen yang cocok. Anda dapat memeriksa apakah panjangnya nol. Perhatikan perubahan hanya untuk mencari elemen sekali dan menggunakan kembali hasilnya sesuai kebutuhan.
Juga, sudahkah Anda mencoba hanya menggunakan fungsi teks - jika tidak ada elemen, itu tidak akan melakukan apa-apa.
sumber
fungsi jquery $ () selalu mengembalikan nilai bukan nol - elemen rata-rata cocok dengan Anda pemilih kretaria. Jika elemen tidak ditemukan, itu akan mengembalikan array kosong. Jadi kode Anda akan terlihat seperti ini -
sumber
Di jQuery 1.4 Anda mendapatkan fungsi $ .isEmptyObject, tetapi jika Anda terpaksa menggunakan versi jQ yang lebih lama seperti kami, pengembang Drupal yang malang, curi saja gunakan kode ini:
Gunakan seperti:
sumber
apa pun pilihan Anda, fungsi
$()
selalu mengembalikan objek jQuery sehingga tidak dapat digunakan untuk menguji. Cara terbaik (jika bukan satu-satunya) adalah menggunakansize()
fungsi atau properti panjang asli seperti dijelaskan di atas.sumber
Objek jQuery yang dikembalikan oleh semua metode jQuery asli BUKAN array, itu adalah objek dengan banyak properti; salah satunya menjadi properti "panjang". Anda juga dapat memeriksa ukuran () atau mendapatkan (0) atau mendapatkan () - 'get (0)' berfungsi sama dengan mengakses elemen pertama, yaitu $ (elem) [0]
sumber
Bagaimana dengan menggunakan "undefined"?
sumber
gunakan
$("#selector").get(0)
untuk memeriksa dengan null seperti itu. dapatkan kembalikan elemen dom, sampai kemudian Anda berurusan dengan sebuah array, di mana Anda perlu memeriksa properti length. Saya pribadi tidak suka pemeriksaan panjang untuk penanganan null, ini membingungkan saya karena beberapa alasan :)sumber
Menggunakan properti panjang Anda bisa melakukan ini.
sumber
ketika objek kosong kembalikan kesalahan ini:
Saya mencoba kode ini:
sumber
sumber
Properti panjang panggilan pada objek yang tidak terdefinisi atau null akan menyebabkan browser IE dan webkit gagal!
Alih-alih coba ini:
atau
sumber