Saya seorang pemula total. Adakah yang bisa memberi tahu saya cara menghapus elemen HTML menggunakan Javascript asli bukan jQuery.
index.html
<html>
<head>
<script type="text/javascript" src="myscripts.js" > </script>
<style>
#dummy {
min-width: 200px;
min-height: 200px;
max-width: 200px;
max-height: 200px;
background-color: #fff000;
}
</style>
</head>
<body>
<div id="dummy"></div>
<form>
<input type="submit" value="Remove DUMMY" onclick="removeDummy(); "/>
</form>
</body>
myscripts.js
function removeDummy() {
var elem = document.getElementById('dummy');
elem.parentNode.removeChild(elem);
}
Apa yang terjadi jika saya mengklik tombol kirim, adalah tombol tersebut akan menghilang dalam waktu yang sangat singkat dan kemudian segera muncul kembali. Saya ingin menghapus elemen sepenuhnya ketika saya mengklik tombol.
javascript
html
Coder Pemula
sumber
sumber
Jawaban:
Apa yang terjadi adalah formulir tersebut dikirimkan, sehingga halaman disegarkan (dengan konten aslinya). Anda menangani
click
acara tersebut dengan tombol kirim.Jika Anda ingin menghapus elemen dan tidak mengirimkan formulir, tangani
submit
acara tersebut di formulir, dan kembalifalse
dari penangan Anda:HTML:
JavaScript:
Tetapi Anda sama sekali tidak membutuhkan (atau menginginkan) formulir untuk itu, tidak jika tujuan utamanya adalah untuk menghapus div dummy. Sebagai gantinya:
HTML:
JavaScript:
Namun , gaya pengaturan penangan acara itu kuno. Anda tampaknya memiliki naluri yang baik bahwa kode JavaScript Anda ada di file sendiri dan semacamnya. Langkah selanjutnya adalah melangkah lebih jauh dan menghindari penggunaan
onXYZ
atribut untuk menghubungkan penangan kejadian. Sebaliknya, dalam JavaScript Anda, Anda dapat menghubungkannya dengan cara yang lebih baru (sekitar tahun 2000) sebagai gantinya:HTML:
JavaScript:
... lalu panggil
pageInit();
dariscript
tag di bagian paling akhir laman Andabody
(tepat sebelum</body>
tag penutup ), atau dari dalamwindow
load
acara, meskipun itu terjadi sangat terlambat dalam siklus pemuatan laman dan biasanya tidak baik untuk menghubungkan acara penangan (itu terjadi setelah semua gambar akhirnya dimuat, misalnya).Perhatikan bahwa saya harus melakukan beberapa penanganan untuk menangani perbedaan browser. Anda mungkin menginginkan fungsi untuk menghubungkan acara sehingga Anda tidak perlu mengulangi logika itu setiap saat. Atau pertimbangkan untuk menggunakan pustaka seperti jQuery , Prototype , YUI , Closure , atau beberapa lainnya untuk memuluskan perbedaan browser tersebut untuk Anda. Sangat penting untuk memahami hal-hal mendasar yang terjadi, baik dalam hal dasar-dasar JavaScript dan dasar-dasar DOM, tetapi perpustakaan menangani banyak ketidakkonsistenan, dan juga menyediakan banyak utilitas praktis - seperti sarana untuk menghubungkan penangan acara yang berhubungan dengan perbedaan browser. Kebanyakan dari mereka juga menyediakan cara untuk menyiapkan fungsi (seperti
pageInit
) untuk dijalankan segera setelah DOM siap untuk dimanipulasi, jauh sebelumwindow
load
diaktifkan.sumber
type="button"
atau masukkanreturn false;
fungsi JS Andaonxyz
properti pada elemen) hanya memungkinkan satu penangan, dan jika Anda menetapkan ke properti Anda mengganti apa pun yang dulu ada di sana, sehingga tidak berfungsi dengan baik dengan yang lain. (lanjutan)Lakukan saja ini
element.remove();
Coba di sini LIHAT
http://jsfiddle.net/4WGRP/
sumber
.remove()
Anda harus menggunakan input type = "button" daripada input type = "submit".
Lihat Pusat Pengembang Mozilla untuk sumber daya html dan javascript dasar
sumber
JavaScript Anda benar. Tombol Anda memiliki
type="submit"
yang menyebabkan halaman disegarkan.sumber
Itu muncul kembali karena tombol kirim Anda memuat ulang halaman. Cara paling sederhana untuk mencegah perilaku ini adalah untuk menambahkan
return false
keonclick
seperti:sumber
Ubah jenis masukan menjadi "tombol". Seperti yang dikatakan TJ dan Pav, formulir sudah diserahkan. Javascript Anda terlihat benar, dan saya memuji Anda karena mencobanya dengan cara non-JQuery :)
sumber
index.html
myscripts.js
sumber
Itu adalah kode yang benar. Apa yang mungkin terjadi adalah formulir Anda dikirimkan, dan Anda melihat halaman baru (di mana elemen tersebut akan ada lagi).
sumber
Coba jalankan kode ini di skrip Anda .
Dan mudah-mudahan akan menghapus elemen / tombol.
sumber
Ini bekerja. Hapus saja tombol dari "dummy"
div
jika Anda ingin menyimpan tombol tersebut.sumber
Saya masih pemula juga, tapi ini satu cara yang sederhana dan mudah: Anda dapat menggunakan outerHTML, yang merupakan keseluruhan tag, bukan hanya sebagian:
EX:
<tag id='me'>blahblahblah</tag>
innerHTML akan menjadiblahblahblah
, dan outerHTML akan menjadi segalanya,<tag id='me'>blahblahblah</tag>
,.Jadi, misalnya, jika Anda ingin menghapus tag, itu pada dasarnya menghapus datanya, jadi jika Anda mengubah HTML luar menjadi string kosong, itu seperti menghapusnya.
Sebaliknya, jika Anda hanya ingin tidak menampilkannya, Anda dapat menatanya di JS menggunakan properti visibilitas, opasitas, dan tampilan.
Catat itu
opacity
membuat elemen tetap ditampilkan, hanya saja Anda tidak bisa melihatnya terlalu sering. Selain itu, Anda dapat memilih teks, menyalin, menempel, dan melakukan semua yang biasanya Anda lakukan, meskipun tidak terlihat.Visibility
lebih sesuai dengan situasi Anda, tetapi itu akan meninggalkan ruang kosong transparan sebesar elemen yang diterapkan.Saya akan merekomendasikan Anda menampilkan, tergantung bagaimana Anda membuat halaman web Anda. Tampilan pada dasarnya menghapus elemen dari tampilan Anda, tetapi Anda masih bisa melihatnya di DevTools. Semoga ini membantu!
sumber