Kelola gaya CSS menggunakan jQuery. Menambah atau menghapus kelas

16.11.2019 drive SSD

Selamat siang semuanya. Hari ini, seperti yang saya janjikan dalam pelajaran, kita akan melihat metode yang digunakan untuk mengelola gaya CSS menggunakan jQuery.

Izinkan saya mengingatkan Anda bahwa dengan bantuan gaya kita tidak hanya dapat mendefinisikan penampilan elemen pada halaman web, tetapi juga mengontrol posisinya, menampilkan dan menyembunyikannya sesuka hati, mengubah ukurannya, dan banyak lagi. Secara kiasan, orang yang memperoleh akses terhadap kendali gaya CSS, dia mengontrol halaman web itu sendiri! Dan jQuery memberikan kesempatan ini kepada penggunanya!

jQuery memiliki tiga kategori metode: beberapa memanipulasi elemen yang dipilih, yang lain mengembalikan nilai elemen, dan yang lainnya memodifikasi elemen itu sendiri.

Untuk menambahkan gaya ke elemen apa pun, Anda harus menggunakan metode berikut: .css(nama,nilai)

Mari kita ubah gaya judul artikel sebelum kita melangkah terlalu jauh dari bagian atas halaman. Mari kita buat, misalnya, menjadi merah:

.

$("#title".css("warna", "#cc0000");


Dalam contoh ini, saya memilih elemen dengan pengidentifikasi id="title" yang bertanggung jawab untuk menampilkan nama situs dan menambahkan gaya, yaitu. warna. Dan tombol-tombol tersebut bertanggung jawab untuk menerapkan atau mengembalikan gaya default.
Nama dan nilai yang berlaku di CSS dapat digunakan sebagai parameter: latar belakang, batas, gaya font, warna, dll.

Jika Anda perlu menetapkan beberapa aturan CSS untuk suatu elemen, lebih baik menggunakan konstruksi berikut:

.css((properti))

$("#teks").css(( "warna" : "biru", "gaya font" : "miring", "berat font" : 900 ));


Instruksi ini akan mengubah warna teks paragraf sebelumnya menjadi biru dan mengatur berat font menjadi 900.

Perhatikan bahwa properti CSS kompleks seperti font-weight dan background-color juga menggunakan padanan JvaScript: fontWeight, backgroundColor, dll.

Untuk mendemonstrasikan metode lain dalam bekerja dengan gaya, saya akan menggunakan bantuan kotak multi-warna, yang telah membantu saya berkali-kali dalam pelajaran seperti dan.

Izinkan saya mengingatkan Anda kode dan gaya untuk membuatnya:

Kode HTML:


Gaya CSS:

DivRel (posisi:relatif; lebar:600px; tinggi:275px; batas:titik 1;).big (posisi:mutlak; lebar:200px; tinggi:200px; kiri:200px; atas:50px; warna latar:merah; perbatasan :solid 1px putih; warna:putih; perataan teks:kanan; indeks-z:1;) .merah (posisi:mutlak; lebar:100px; tinggi:100px; atas:50px; warna latar:merah ; batas:solid 1px putih; perataan teks:kanan; z-index:1; kanan; z-index:2;) .blue (posisi:absolute; lebar:100px; kiri:300px; atas:100px; latar belakang -warna:biru; batas:solid 1px putih;warna:putih; z-index:3;


Mari pertimbangkan untuk menghapus dan menetapkan kelas CSS ke elemen apa pun:
.removeClass(kelas)
.addClass(kelas)


$("#style2").klik(fungsi())( $("#divRel1 > div:pertama").removeClass(); )); $("#rstyle2").klik(fungsi())( $("#divRel1 > div:pertama").addClass("besar"); ));


Instruksi untuk mengklik tombol ini: “Hapus kelas” akan menghapus kelas dari elemen anak pertama yang terdapat dalam pengidentifikasi id=”divRel1” dan menambahkan kelas class=”besar” ke dalamnya setelah mengklik tombol: “Tambahkan kelas”.

Metode berikut menambahkan kelas tertentu ke elemen jika tidak ada, atau menghapus kelas ini jika elemen sudah memilikinya:
.toggleClass(kelas)

Coba klik dengan mouse di dalam bingkai yang mengelilingi kotak berwarna. Warna latar belakang akan berubah secara bergantian.

$("#divRel1").klik(fungsi () ( $(ini).toggleClass("kuning"); ));


Dan Anda bisa mendapatkan (baris pertama) dan mengatur (baris kedua) masing-masing lebar dan tinggi elemen elemen, menggunakan metode:
.lebar()
.lebar(nilai)
.tinggi()
.tinggi(nilai)

$("#divRel1 > div:last").toggle(function())( $ (ini).lebar(200).tinggi(170); ),fungsi())( $ (ini).lebar(100) .tinggi (100));


Kode yang ditunjukkan di atas memilih elemen :last terakhir dari id="divRel1" dan menggunakan sakelar sakelar untuk mengubah atau memulihkan nilai default ketika kotak biru diklik. Tooltip gaya memiliki properti yang ditentukan: kursor:pointer .

Ini adalah fitur yang sangat menarik dan penting dari metode jQuery: metode ini digunakan untuk mengatur parameter dan mendapatkan nilai parameter ini.

Tapi bukan itu saja! jQuery memungkinkan Anda, jika perlu, menghapus file CSS yang terkait dengan halaman HTML dan mengikat yang baru:
$("link").attr("href", "Alternatif.css");

Coba ubah gaya atau kode jQuery sesuai keinginan Anda. Saya ingin tahu apa yang dapat Anda lakukan?

Tanggal: 28-06-2011

Menyukai

Komentar pada catatan:

Artikel bagus. Semuanya jelas. Terima kasih.

Inilah sebabnya kami merekrut karyawan jarak jauh yang akan melakukan pekerjaan tersebut, yaitu memberikan suka dan mendapatkan bayaran untuk itu.

Anda hanya perlu mendaftar pada layanan kami. > www.oplata-vklike.tk<

Kami menawarkan Anda pekerjaan tanpa investasi, menggunakan sistem untuk menerima dan memproses pesanan secara otomatis.

Kami menyediakan:

Perangkat lunak berlisensi kami.
- dokumen dengan semua informasi tambahan yang diperlukan. informasi.
- konstan dukungan teknis.

Pembayaran mulai 5500 per hari. Pembayaran setiap hari.

Lagi informasi rinci di situs web kami >> obrabotka.zarplatt.ru realno-money.tk< Скопируйте и вставьте в адресную строку Вашего браузера.

Layanan kami memberikan suka nyata pada foto untuk pelanggan yang bersedia membayar untuk kualitas.

Inilah sebabnya kami merekrut karyawan jarak jauh yang akan melakukan pekerjaan tersebut, yaitu memberikan suka dan mendapatkan uang untuk itu.

Untuk menjadi karyawan jarak jauh kami dan mulai menyukai, sambil mendapatkan 45 rubel per 1 suka,

Anda hanya perlu mendaftar pada layanan kami. > oplata-vklike.tk<

Penarikan dana yang diperoleh setiap hari dalam beberapa menit.


bekerja melalui Internet, dengan pembayaran harian hingga 11.000 rubel.



Daftar di situs web kami. > www.airline-rabota.tk<

saya sarankan. Pekerjaan yang mengasyikkan di Internet. Tidak ada pengalaman. Penghasilan percaya diri dari 5.000 rubel. per hari. Sistem ini dapat dimengerti oleh semua orang.
Anda tidak harus bekerja sepanjang hari! Cukup mencurahkan beberapa jam sehari untuk bekerja.
Berhentilah berpikir bahwa Anda tidak dapat menghasilkan uang di World Wide Web, Anda dapat menghasilkan uang di Internet!
Dengan cara yang mudah dan dapat dimengerti oleh semua orang. Yang terpenting adalah jujur!
Anda dapat mengatur sendiri mode pengoperasiannya.
Informasi lebih lengkap ada di website kami. > http://oplata-vklike.tk< скопируйте и вставьте в адресную строку вашего браузера.

Inilah sebabnya kami merekrut karyawan jarak jauh yang akan melakukan pekerjaan tersebut, yaitu memberikan suka dan mendapatkan uang untuk itu.

Untuk menjadi karyawan jarak jauh kami dan mulai menyukai, sambil mendapatkan 45 rubel per 1 suka,

Anda hanya perlu mendaftar pada layanan kami. > http://oplata-vklike.tk/<

Penarikan dana yang diperoleh setiap hari dalam beberapa menit.

Layanan unik untuk membantu Anda mendapatkan pinjaman dari investor swasta, serta lembaga kredit. Cocok untuk perusahaan maupun perorangan.

Pinjaman dari investor swasta.

Perusahaan kami membantu bertemu investor dan peminjam.

Kontak langsung dengan investor
Riwayat kredit apa pun
Yang Anda butuhkan hanyalah paspor
Kami bekerja dengan individu dan perusahaan
Wilayah mana pun
Jumlahnya dari 5.000 hingga 50.000.000 rubel
Tingkat persetujuan 97%

Keuntungan:

Tidak ada jaminan atau jaminan!
- Tarif - mulai dari hanya 1% per bulan!
- Tidak ada biaya atau komisi tersembunyi!

Kirimkan lamaran di situs web kami. > www.ch-investor.tk http://oplata-vklike.tk/<

Penarikan dana yang diperoleh setiap hari dalam beberapa menit.

Perusahaan terkemuka di Rusia dan negara-negara CIS dalam penjualan tiket Maskapai

Perusahaan internasional terbesar yang menjual tiket A/V
sedang mendesak merekrut karyawan secara permanen secara sederhana
bekerja melalui Internet, dengan pembayaran harian mulai 11.000 rubel.

Bekerja di perusahaan kami, Anda mendapatkan:

Kepatuhan terhadap kode ketenagakerjaan
- Paket manfaat penuh, liburan berbayar, cuti sakit, sanatorium.
- Setiap karyawan kami di rumah dijamin mendapat penghasilan yang tinggi. menggosok. per hari.
- Jaminan pembayaran stabil dari uang yang diperoleh.
- Pembayaran terjadi setiap hari kartu bank atau dompet elektronik.

Daftar di situs web kami. > http://airline-rabota.tk/<

Tidak diperlukan investasi, tidak diperlukan pengalaman atau keterampilan profesional!

jQuery memiliki tiga kategori metode: beberapa memanipulasi elemen yang cocok dengan suatu pola; yang kedua mengembalikan nilai elemen, dan yang ketiga mengubah elemen itu sendiri.

Hari ini kita akan melihat metode yang digunakan untuk style CSS.

Jadi, untuk menambahkan gaya ke elemen apa pun, Anda perlu menggunakan metode berikut:

.css(nama,nilai)

Contoh:

$("div").css("batas", "1 piksel biru solid");

Instruksi ini akan mengelilingi div dengan batas biru.

Parameter yang digunakan di sini adalah nama dan nilai yang berlaku di:, gaya font, warna, dll.

Jika Anda perlu menetapkan beberapa aturan CSS untuk suatu elemen, lebih baik menggunakan konstruksi berikut:

.css((properti))

Contoh:

$("div").css(( batas:"1px biru solid", fontWeight:"lebih tebal", backgroundColor:"merah" ));

Instruksi ini akan menguraikan div dengan batas biru, membuat latar belakang menjadi merah, dan teks menjadi tebal.

Perhatikan bahwa properti CSS kompleks seperti font-weight dan background-color menggunakan padanan JS-nya: fontWeight, backgroundColor, dll.

Kami mencantumkan metode lain untuk bekerja dengan gaya:

  • .addClass(kelas)

    Contoh:

    $("p:terakhir").addClass("utama");

    Pernyataan ini akan menambahkan kelas utama ke elemen terakhir paragraf.

  • .removeClass(kelas)

    Contoh:

    $("p:genap").removeClass("utama");

    Instruksi ini akan menghapus kelas utama dari semua paragraf genap.

  • .toggleClass(kelas)

    Contoh:

    $("p").toggleClass("utama");

    Instruksi ini akan menghapus kelas utama dari semua paragraf, jika ada. Dan akan menambahkan kelas ini jika tidak ada.

  • .mengimbangi()

    Contoh:

    var offDiv=$("div").offset();

    Instruksi ini memungkinkan Anda memperoleh suatu elemen. Untuk mendapatkan nilai properti tertentu, Anda perlu menggunakan properti berikut: offset.left untuk indentasi kiri dan offset.top untuk indentasi atas.

  • .tinggi(nilai)

    Contoh:

    $("div").tinggi(); $("div").tinggi(200);

    Instruksi ini memungkinkan Anda untuk mendapatkan (baris pertama) dan mengatur (baris kedua) tinggi elemen.

  • .lebar(nilai)

    Contoh:

    $("div").lebar(); $("div").lebar(200);

    Instruksi ini memungkinkan Anda untuk mendapatkan (baris pertama) dan mengatur (baris kedua) lebar elemen.

    Contoh lain:

    var widDiv=$("div").lebar(); $("div.fir").lebar(300);

    Baris pertama akan menuliskan lebar div pertama ke variabel widDiv. Instruksi kedua akan mengatur div kelas fir menjadi lebar 300 piksel.

    Ini adalah fitur yang sangat menarik dari metode jQuery: mereka digunakan untuk mengatur parameter (ketika 2 argumen diterima) dan untuk mendapatkan nilai parameter ini (jika satu argumen dilewatkan).

Mari kita gunakan ilmu yang kita peroleh untuk membuat menu dengan tab seperti ini (klik pada tab): jQuery - CSS

tab 1

tab 2

tab 3

tab 4

Jadi, kode html halamannya adalah sebagai berikut: jQuery - CSS

tab 1

tab 2

tab 3

tab 4

Seperti yang Anda lihat, semua tab memiliki gaya yang sama, ditentukan oleh kelas vkl, dan tab yang dipilih memiliki kelas yang dipilih. Tampilannya akan kita tulis di halaman style.css

Vkl( float:kiri; lebar:140px; tinggi:28px; latar belakang:#E5BA83; warna:putih; ukuran font:20px; batas kanan:1px putih solid; padding-kiri:10px; ) #content( lebar:603px ; tinggi:100px; latar belakang:#CCA675; .dipilih( latar belakang:#CCA675; )

Yang paling menarik tetap ada, yaitu fungsi chang() :

fungsi chang(s)( $(".selected").removeClass("selected"); $(s).addClass("selected"); )

Lalu bagaimana cara kerja fitur ini? Pertama, elemen dicari yang memiliki kelas yang dipilih, dan kelas ini dihapus darinya. Kemudian (baris kedua) kelas yang dipilih ditambahkan ke elemen yang dipilih (terletak di dekat id yang diteruskan ke fungsi sebagai parameter s). Sesederhana itu.

Pada pelajaran berikutnya, kita akan mempelajari cara menggunakan jQuery untuk menyisipkan dan memanipulasi seluruh bagian kode html ke dalam sebuah halaman.

Tutorial ini mencakup cara memanipulasi elemen yang ada pada halaman:

  • Menghapus elemen dari halaman menggunakan metode kosong() , hapus() , detach() dan unwrap()
  • Mengganti elemen dengan elemen baru menggunakan metode replaceWith() dan replaceAll()
  • Memindahkan elemen dari satu elemen induk ke elemen lainnya di halaman
Menghapus elemen dari halaman Menghapus semua yang ada di dalam elemen: kosong()

Metode kosong() adalah cara paling sederhana menghapus konten dari halaman. Memanggil metode kosong() pada objek jQuery akan menghapus semua konten dari kumpulan yang sesuai dengan elemen (atau elemen) dalam objek jQuery.

Dengan kata lain, metode blank() menghapus semua elemen dan node yang diwariskan (seperti node teks) dari setiap elemen dalam kumpulan, sehingga elemen tersebut tetap kosong.

Contoh ini menghapus konten dari dua elemen div:

$(init); function init() ( // Hapus isi #myDiv1 dan #myDiv2 $(".emptyMe").empty(); )

Paragraf dengan teks

Paragraf lain dengan teks

Setelah mengeksekusi kode di atas, konten halaman akan berubah menjadi:

Menghapus seluruh elemen: hapus()

Meskipun metode kosong() menghapus semua yang ada di dalam elemen, metode hapus() menghapus semuanya, termasuk elemen itu sendiri. Misalnya:

$(init); function init() ( // Hapus #myDiv1 dan #myDiv2 seluruhnya $(".removeMe").remove(); )

Paragraf dengan teks

Paragraf lain dengan teks

Node teks apa adanya

Setelah mengeksekusi kode di atas, kedua elemen div akan dihapus dari halaman:

Anda dapat meneruskan string dengan pemilih bersyarat ke metode hapus(). Dalam hal ini, elemen yang akan dihapus akan disaring oleh pemilih. Misalnya:

$(init); function init() ( // Hapus hanya #myDiv2 $(".removeMe").remove(":contains("Paragraf lain")"); )

Paragraf dengan teks

Paragraf lain dengan teks

Node teks apa adanya

Pada contoh di atas, hanya elemen div yang memiliki kelas hapusMe yang akan dihapus Dan berisi teks "Paragraf lain". Segala sesuatu yang lain akan tetap ada di halaman:

Paragraf dengan teks

Menghapus elemen tanpa merusak datanya: detach()

Metode hapus() mengembalikan objek jQuery yang berisi elemen yang dihapus. Secara teori, Anda dapat menghapus elemen dari satu tempat pada halaman dan kemudian memasangnya kembali di mana saja nanti.

Namun, untuk menghemat sumber daya dan menghindari potensi masalah kebocoran memori, metode delete() menghapus semua data dan peristiwa jQuery yang terkait dengan elemen yang dihapus. Misalnya, jika suatu elemen diberi peristiwa klik jQuery, lalu elemen tersebut dihapus dari halaman menggunakan metode hapus(), peristiwa klik tersebut akan dihapus dari elemen tersebut. Hal ini dapat menimbulkan masalah jika nanti Anda ingin mengembalikan elemen tersebut ke halaman dan memulihkan fungsinya.

Metode detach() (diperkenalkan di jQuery 1.4) dapat membantu dalam kasus ini. Ia bekerja hampir persis seperti metode hapus(), kecuali untuk satu hal - itu tidak menghapus data dan peristiwa jQuery yang terkait dengan elemen yang dihapus. Ini berarti Anda nantinya dapat memasang kembali elemen yang dihapus sambil mempertahankan metadata jQuery-nya.

Contoh. Skrip berikut menetapkan acara klik jQuery untuk masing-masing dua paragraf di halaman. Kedua event handler cukup mengaktifkan kelas CSS "merah" agar paragraf berubah warna dari merah menjadi hitam atau kembali lagi setiap kali diklik.

Skrip kemudian menghapus paragraf pertama dari halaman menggunakan metode hapus() dan menyimpan objek jQuery yang berisi paragraf dalam variabel myDiv1Para. Kemudian kita lampirkan kembali paragraf tersebut ke div induk menggunakan metode appendTo().

Kita melakukan hal yang sama dengan paragraf kedua, namun kita menggunakan metode detach() alih-alih metode hapus().

< p.red { color: red; } $(init); function init() { // Назначаем событие click каждому параграфу div $("#myDiv1>p").klik(fungsi() ( $(ini).toggleClass("merah"); )); $("#myDiv2>p").klik(fungsi() ( $(ini).toggleClass("merah "); )); // Hapus dan pulihkan paragraf #myDiv1 var myDiv1Para = $("#myDiv1>p").remove(); myDiv1Para.appendTo("#myDiv1"); // Hapus dan pulihkan paragraf # myDiv2 var myDiv2Para = $("#myDiv2>p").detach(); myDiv2Para.appendTo("#myDiv2" )

Paragraf dengan teks

Paragraf lain dengan teks

Setelah menjalankan skrip ini, paragraf pertama akan kehilangan event handler kliknya, dan paragraf kedua akan mempertahankan fungsionalitas penuhnya. Anda dapat memeriksanya dengan membuka halaman tersebut di browser Anda. Jika Anda menekan tombol mouse pada paragraf kedua, itu akan berubah warna, tetapi paragraf pertama tidak akan bereaksi sama sekali terhadap tindakan mouse.

Hal ini karena metode hapus() menghapus event handler untuk paragraf pertama, namun metode detach() mempertahankan event handler klik untuk paragraf kedua.

Menghapus elemen induk: unwrap()

Metode unwrap() menghapus induk elemen (atau kumpulan induk elemen) dari DOM. Elemen tersebut akan menggantikan elemen induknya di DOM.

Contoh berikut memperluas konten div. Dengan kata lain, div diganti dengan isinya:

$(init); function init() ( // Hapus elemen #myDiv, tetapi pertahankan isinya $("#myPara").unwrap(); )

Paragraf dengan teks

Paragraf lain dengan teks

Setelah mengeksekusi kode di atas, konten halaman akan terlihat seperti ini:

Paragraf dengan teks

Paragraf lain dengan teks

Mengganti elemen Mengganti elemen dengan konten baru: replaceWith()

Metode replaceWith() memungkinkan Anda mengganti elemen atau kumpulan elemen dengan konten baru. Anda dapat mengirimkan konten pengganti dalam salah satu bentuk berikut:

  • Objek elemen yang dibuat menggunakan fungsi DOM JavaScript seperti document.getElementById() atau document.createElement()
  • String HTML yang mewakili konten pengganti
  • Objek jQuery yang berisi elemen (atau elemen) yang akan digunakan sebagai pengganti
  • Fungsi panggilan balik yang seharusnya mengembalikan kode HTML pengganti

Di bawah ini adalah contoh yang menunjukkan cara kerja metode replaceWith(). Paragraf pertama sedang diganti baris baru HTML, paragraf kedua diganti dengan objek elemen, dan paragraf ketiga diganti dengan hasil fungsi yang mengembalikan waktu saat ini:

$(init); function init() ( // Ganti paragraf di #myDiv1 dengan paragraf baru $("#myDiv1>p").replaceWith("

Paragraf baru dengan teks

"); // Ganti paragraf di #myDiv2 dengan garis horizontal var hr = document.createElement("hr"); $("#myDiv2>p").replaceWith(hr); // Ganti paragraf di #myDiv3 dengan garis dengan waktu saat ini $("#myDiv3>p").replaceWith(currentTime); function currentTime() ( var currentTime = new Date(); var currentHours = currentTime.getHours(); var currentMinutes = currentTime.getMinutes (); var currentSeconds = currentTime .getSeconds(); // Isikan menit dan detik dengan angka nol di depan, jika diperlukan currentMinutes = (currentMinutes< 10 ? "0" : "") + currentMinutes; currentSeconds = (currentSeconds < 10 ? "0" : "") + currentSeconds; return ("

Waktu saat ini: " + Jam saat ini + ":" + Menit saat ini + ":" + Detik saat ini + "

"); } }

Paragraf dengan teks

Paragraf dengan teks

Paragraf dengan teks

Setelah kode dijalankan, konten halaman akan terlihat seperti:

Paragraf baru dengan teks

Waktu saat ini: 13:52:17

replaceAll() : alternatif dari metode replaceWith()

Metode replaceAll() melakukan pekerjaan yang sama seperti metode replaceWith(), namun alih-alih meneruskan konten pengganti sebagai argumen, Anda harus meneruskan elemen yang akan diganti.

Misalnya, 2 baris kode berikut melakukan hal yang sama:

$("#DivSaya").replaceWith("

Ini teks barunya

"); $("

Ini teks barunya

").replaceAll("#DivSaya");

Elemen Bergerak

Sekarang Anda tahu cara melepas dan mengganti elemen. Pertanyaannya tetap: bagaimana cara memindahkan elemen di sepanjang pohon DOM? Misalnya, ada paragraf di dalam elemen div, dan Anda perlu memindahkannya ke div lain.

Meskipun jQuery tidak memilikinya metode khusus untuk memindahkan elemen di sekitar pohon DOM, ini sebenarnya sangat sederhana untuk diterapkan. Yang perlu Anda lakukan hanyalah menyorot elemen yang ingin Anda pindahkan; lalu panggil metode "tambahkan", seperti append() , appendTo() , atau prepend() , untuk menambahkan elemen yang dipilih ke elemen induk lainnya. jQuery akan secara otomatis mengenali bahwa elemen sudah ada di halaman dan memindahkannya ke induk baru.

Contoh ini mereproduksi proses yang dijelaskan. Paragraf berpindah dari yang pertama div di detik:

$(init); function init() ( // Pindahkan paragraf dari #myDiv1 ke #myDiv2 $("#myDiv2").append($("#myDiv1>p")); )

Paragraf dengan teks

Setelah mengeksekusi kode, halamannya akan terlihat seperti ini:

Paragraf dengan teks

Dan inilah cara lain untuk memindahkan elemen:

// Pindahkan paragraf dari #myDiv1 ke #myDiv2 $("#myDiv1>p").appendTo($("#myDiv2"));

// Pindahkan paragraf dari #myDiv1 ke #myDiv2 var para = $("#myDiv1>p");

para.prependTo("#myDiv2");

// Pindahkan paragraf dari #myDiv1 ke #myDiv2 // dengan melepaskan paragraf secara eksplisit dan menambahkannya ke lokasi baru $("#myDiv1>p").detach().prependTo("#myDiv2");

Contoh 3 mendemonstrasikan teknik jQuery yang sangat berguna: pengikatan metode. Karena sebagian besar metode jQuery mengembalikan objek, Anda dapat memanggil metode lain pada objek yang dikembalikan. Yang pada gilirannya akan mengembalikan objek jQuery berikutnya, dan seterusnya.

Paragraf dengan teks

Jadi pada contoh di atas, objek jQuery dikembalikan dengan metode detach() yang dipanggil untuk menghapus paragraf. Dan metode prependTo() dipanggil pada objek jQuery yang dikembalikan untuk menambahkan paragraf yang dihapus ke elemen induk baru.

Paragraf dengan teks

Paragraf dengan teks

Apa yang terjadi jika Anda mencoba memindahkan beberapa konten ke lebih dari satu elemen induk secara bersamaan? Jika Anda melakukan ini, jQuery pertama-tama akan menghapus konten dari induk lama, lalu mengkloning konten sebanyak yang diperlukan dan menambahkan klon ke setiap elemen induk yang ditentukan. Misalnya:

$(init); function init() ( // Pindahkan paragraf dari #myDiv1 ke #myDiv2 dan #myDiv3 $("#myDiv2, #myDiv3").append($("#myDiv1>p")); )

Setelah mengeksekusi kode di atas, konten halaman akan terlihat seperti ini:

Melanjutkan

Menghapus, mengganti, dan memindahkan konten adalah konsep dasar yang memungkinkan Anda membangun situs web jQuery yang hebat.

penerimaan kelas (15)

Coba ini

$(".ClassName").css("warna",""); Atau $("#NamaId").css("warna","");

Saya mengubah CSS menggunakan jQuery dan saya ingin menghapus gaya yang saya tambahkan berdasarkan nilai input:

If(warna != "000000") $("body").css("warna latar", warna); lain // hapus gaya?

(hapus kelas jika ada dan tambahkan jika tidak).

Menambah/menghapus kelas juga tidak terlalu membingungkan untuk mengubah/memecahkan masalah saat menangani masalah tata letak (dibandingkan mencoba mencari tahu mengapa sebenarnya gaya tersebut menghilang).

Bagaimana dengan sesuatu seperti:

Var myCss = $(elemen).attr("css"); myCss = myCss.replace("warna latar: "+$(elemen).css("warna latar")+";", ""); if(myCss == "") ( $(element).removeAttr("css"); ) else ( $(element).attr("css", myCss); )

Ini lebih kompleks dibandingkan beberapa solusi lainnya, namun dapat menawarkan lebih banyak fleksibilitas dalam skenario:

1) Buat definisi kelas untuk mengisolasi (merangkum) gaya yang ingin Anda terapkan/hapus secara selektif. Itu bisa kosong (dan untuk kasus ini mungkin seharusnya):

Warna Saya()

2) gunakan kode ini berdasarkan http://jsfiddle.net/kdp5V/167/ dari jawaban ini Gilly3:

Perubahan fungsiCSSRule(styleSelector,property,value) ( ​​untuk (var ssIdx = 0; ssIdx< document.styleSheets.length; ssIdx++) { var ss = document.styleSheets; var rules = ss.cssRules || ss.rules; if(rules){ for (var ruleIdx = 0; ruleIdx < rules.length; ruleIdx++) { var rule = rules; if (rule.selectorText == styleSelector) { if(typeof value == "belum diartikan" || !value){ rule.style.removeProperty(property); } else { rule.style.setProperty(property,value); } return; // stops at FIRST occurrence of this styleSelector } } } } }

Perhatian:

  • Tidak tunduk pada pengujian ekstensif.
  • Tidak dapat memasukkan arahan penting atau lainnya dalam nilai baru. Segala arahan yang ada akan hilang akibat manipulasi ini.
  • Hanya ubahannya yang pertama kali mengungkap tampilan gaya Selector. Tidak menambah atau menghapus seluruh gaya, namun dapat dilakukan dengan sesuatu yang lebih kompleks.
  • Nilai apa pun yang tidak valid/tidak dapat digunakan akan diabaikan atau menyebabkan kesalahan.
  • Di Chrome (setidaknya) non-lokal (seperti di lintas situs) aturan CSS tidak diekspos melalui objek document.styleSheets, jadi ini tidak akan berfungsi pada objek tersebut. Anda perlu menambahkan penggantian lokal dan memanipulasinya, dengan mengingat perilaku "pertama kali ditemukan" dari kode tersebut.
  • document.styleSheets tidak terlalu ramah terhadap manipulasi secara umum, jangan berharap ini berfungsi untuk penggunaan yang agresif.

Mengisolasi gaya dengan cara ini adalah inti dari CSS, meskipun tidak memanipulasinya. Memanipulasi aturan CSS BUKAN tentang jQuery, jQuery memanipulasi elemen DOM dan menggunakan pemilih CSS untuk melakukan itu.

Misalkan el = document.querySelector(elemen) biarkan gaya = el.getAttribute("style") el.setAttribute("style", style.replace("width: 100%", ""))

Jawaban yang diterima berfungsi, tetapi meninggalkan atribut style kosong di DOM dalam pengujian saya. Bukan masalah besar, tapi ini menghapus semuanya:

HapusAttr("gaya");

Ini mengasumsikan bahwa Anda ingin menghapus semua gaya dinamis dan kembali ke lembar gaya.

$(elemen).style.attr = " ";

Gunakan plugin saya:

$.fn.removeCss=fungsi(semua)( if(all===true)( $(this).removeAttr("class"); ) mengembalikan $(this).removeAttr("style") )

Untuk kasus Anda, gunakan seperti ini:

$().removeCss();

$().removeCss(salah);

jika Anda ingin menghapus juga CSS yang ditentukan di kelasnya:

$().removeCss(benar);

Cukup menggunakan:

$(".tag-class").removeAttr("gaya");

$("#tag-id").removeAttr("gaya");

Mengubah properti menjadi string kosong sepertinya berhasil.

$.css("warna latar", "");

salah satu fungsi jQuery ini seharusnya berfungsi:

$("#elemen").removeAttr("gaya"); $("#elemen").removeAttr("warna latar")

Oke, kipas angin berusia 6 tahun tutup. Apakah Anda ingin mendengar contoh paling sederhana penutupan?

Mari kita bayangkan situasi berikut: pengemudi sedang duduk di dalam mobil. Mobil ini ada di dalam pesawat. Pesawatnya ada di bandara. Kemampuan pengemudi untuk mengakses hal-hal di luar kendaraannya tetapi di dalam pesawat, meskipun pesawat tersebut meninggalkan bandara, merupakan suatu penutupan. Itu saja. Saat Anda menginjak usia 27 tahun, simak penjelasan lebih detailnya atau contohnya di bawah ini.

Inilah cara saya mengubah riwayat pesawat saya menjadi kode.

var plane = function(defaultAirport) ( var lastAirportLeft = defaultAirport; var car = ( driver: ( startAccessPlaneInfo: function() ( setInterval(function() ( console.log("Bandara terakhir adalah " + lastAirportLeft); ), 2000); ) ) ); car.driver.startAccessPlaneInfo(); return ( tinggalkanTheAirport: function(airPortName) ( lastAirportLeft = airPortName; ) )("Bandara Internasional Boryspil"); plane.leaveTheAirport("John F.Kennedy");