Saya memiliki fungsi yang menambahkan <div>
elemen ke klik. Fungsi ini mendapatkan teks dari elemen yang diklik dan menetapkannya ke variabel yang disebut name
. Variabel itu kemudian digunakan sebagai <div>
id
elemen yang ditambahkan.
Saya perlu melihat apakah <div>
id
dengan name
sudah ada sebelum saya menambahkan elemen tetapi saya tidak tahu bagaimana menemukan ini.
Ini kode saya:
$("li.friend").live('click', function() {
name = $(this).text();
// if-statement checking for existence of <div> should go here
// If <div> does not exist, then append element
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
// Else
alert('this record already exists');
});
Ini sepertinya cukup mudah tetapi saya mendapatkan kesalahan " Akhir file yang tidak terduga saat mencari nama kelas" . Saya tidak tahu apa artinya itu.
if (document.getElementById(name)) {
$("div#" + name).css({bottom: '30px'});
} else {
$("div#page-content div#chatbar").append("<div class='labels'>" + name + "</div><div id='" + name + "'></div>");
}
Terlebih lagi adalah bahwa saya ingin dapat menghapus elemen ini jika saya menutupnya yang kemudian harus menghapus div id [name]
dari dokumen tetapi .remove()
tidak melakukan ini.
Ini kode untuk itu:
$(".mini-close").live('click', function(){
$(this).parent().remove();
});
Saya menambahkan .mini-close
ke fungsi append sebagai anak .labels
sehingga ada cara untuk menutup dari append <div>
jika diperlukan. Setelah mengklik .mini-close
dan mencoba mengklik nama yang sama lagi dari li.friends
sana masih menemukan div id [name]
dan mengembalikan bagian pertama dari if
pernyataan saya .
sumber
$("div#" + name).css({bottom: '30px'});
salah, seharusnya$("div#" + name).css('bottom', '30px');
Jawaban:
Anda dapat menggunakan
.length
setelah pemilih untuk melihat apakah itu cocok dengan elemen apa pun, seperti ini:Versi lengkap:
Atau, versi non-jQuery untuk bagian ini (karena ini adalah ID):
sumber
!$("#"+name).length)
:)===
bukannya melihat==
.Jawaban Nick berhasil. Anda juga dapat menggunakan nilai pengembalian getElementById secara langsung sebagai kondisi Anda, daripada membandingkannya dengan nol (cara apa pun bekerja, tetapi saya pribadi menemukan gaya ini sedikit lebih mudah dibaca):
sumber
Cobalah untuk memeriksa panjang pemilih, jika mengembalikan Anda sesuatu maka elemen tersebut harus ada yang lain tidak.
Gunakan kondisi pertama jika untuk id dan yang kedua untuk kelas.
sumber
sumber
Cara singkat lainnya:
sumber
Anda dapat memeriksa dengan menggunakan jquery seperti ini:
sumber
Cara paling sederhana adalah ..
Ini juga bagian dari spesifikasi HTML5: https://www.w3.org/TR/html5/single-page.html#accessing-other-browsing-contexts#named-access-on-the-window-object
sumber
Berikut adalah fungsi jQuery yang saya gunakan:
Ini akan mengembalikan nilai boolean. Jika elemen ada, itu mengembalikan true. Jika Anda ingin memilih elemen berdasarkan nama kelas, cukup ganti
#
dengan.
sumber
Anda dapat menanganinya dengan cara yang berbeda,
Objektif adalah untuk memeriksa apakah div ada kemudian jalankan kode. Sederhana.
Kondisi:
catatan:
Ini akan mengembalikan angka setiap kali dieksekusi jadi jika tidak ada div itu akan memberikan Nol [0], dan karena kita tidak ada 0 dapat dinyatakan sebagai false dalam biner sehingga Anda dapat menggunakannya dalam pernyataan if. Dan Anda dapat menggunakannya sebagai perbandingan dengan nomor tidak ada. sementara pun ada tiga pernyataan yang diberikan di bawah ini
sumber
masukkan id yang ingin Anda periksa di jquery adalah metode.
sumber