Mencetuskan Modal dengan Kiraan Kelas Aktif dalam Jadual
Anda mungkin ingin menggunakan tingkah laku tersuai berdasarkan kandungan setiap sel semasa bekerja dengannya jadual HTML. Sebagai contoh, anda boleh menggunakan corak atau kriteria tertentu untuk menetapkan kelas secara dinamik kepada sel jadual. Meja anda mungkin menjadi lebih berguna dan menarik akibatnya.
Dalam contoh ini, sel jadual yang memenuhi keperluan tertentu akan mempunyai kelas yang dinamakan aktif ditambah kepada mereka. A JavaScript fungsi yang memeriksa setiap sel, mengesahkan kandungannya, dan kemudian menggunakan kelas dengan sewajarnya digunakan untuk melakukan ini. Ia adalah kaedah yang produktif untuk mengatur sel tertentu mengikut data mereka.
Selepas menggunakan aktif kelas kepada subset sel, mengira bilangan sel yang mempunyai kelas ini boleh menjadi langkah seterusnya yang kerap. Jika anda ingin memulakan acara atau tindakan, membuka modal sedemikian yang menunjukkan kiraan, mengira sel ini boleh membantu.
Tutorial ini akan mengajar anda cara menggunakan JavaScript untuk mengira bilangan sel yang mempunyai aktif kelas dan untuk melancarkan modal secara automatik yang menunjukkan kiraan. menggunakan jQuery, penyelesaiannya adalah mudah, cekap dan mudah untuk dilaksanakan.
Perintah | Contoh Penggunaan | |
---|---|---|
.each() | Setiap elemen dalam set elemen dipadankan diulang oleh fungsi jQuery ini. Ia menggunakan logik bersyarat atau kelas dengan mengulangi setiap sel jadual ( | ) in our example. |
addClass() | The selected items receive one or more class names added to them by this jQuery method. The script applies the aktif atau tiada kelas ke sel mengikut kandungannya. | |
.dialog() | Used with jQuery UI to generate a modal dialog. When the script triggers the modal, the autoOpen: true option makes sure it opens automatically and shows the number of active items. | |
.text() | The text content of the chosen components is retrieved or set using this technique. In this instance, it checks to see if the contents of every | sel sepadan dengan corak tertentu. |
RegExp() | Ungkapan biasa dibuat dengan pembina JavaScript ini. Skrip boleh menetapkan kelas berdasarkan kandungan dengan mengenal pasti corak seperti nombor diikuti dengan huruf besar atau c diikuti dengan digit. | |
classList.add() | Teknik JavaScript asas ini memberikan elemen kelas tertentu. Ia berfungsi sama dengan addClass() jQuery dalam penyelesaian JavaScript vanila, sambil menambah aktif atau tiada kelas bergantung pada keadaan. | |
DOMContentLoaded | Apabila dokumen HTML telah selesai memuatkan dan menghuraikan, peristiwa DOMContentLoaded akan dicetuskan. Dalam contoh JavaScript vanila, ia memastikan skrip dilaksanakan selepas DOM selesai dimuatkan. | |
querySelectorAll() | Setiap elemen dalam dokumen yang sepadan dengan pemilih CSS yang diberikan dikembalikan oleh fungsi JavaScript ini. Dalam contoh JavaScript asas, ia digunakan untuk memilih setiap | element in the table for further processing. |
forEach() | An array method in JavaScript that lets you iterate over elements. Here, it's utilized to iterate over every table cell that querySelectorAll() returned and apply the required logic to each one. |
Memahami Skrip: Mengira Sel dan Mencetuskan Modal
Dalam contoh skrip pertama, setiap sel jadual diulang, kandungannya dinilai dan kelas ditetapkan bergantung pada penilaian menggunakan jQuery. Ciri ini dimungkinkan dengan mengulangi setiap satu
Dengan RegExp() pembina, ungkapan biasa untuk nombor yang sepadan diikuti dengan huruf dibina. Teknik ini memastikan bahawa sel dengan data, seperti "1A" atau "3C," dikenali dan dilabelkan dengan kelas semasa. Sel menerima kelas berasingan yang dipanggil tiada jika kandungan sepadan dengan corak yang berbeza, seperti "c" diikuti dengan nombor. Ini memungkinkan untuk mengklasifikasikan data dalam jadual dengan lebih tepat. Tambahan pula, addClass() kaedah menjamin bahawa sel boleh menambah kelas ini tanpa memadamkan sebarang kelas yang mungkin sudah ada.
Langkah seterusnya ialah mengira sel yang sesuai dan memulakan modal selepas semuanya ditandakan dengan kelas aktif. Setiap kali sel memperoleh kelas aktif, kiraan akan ditambah dan disimpan dalam pembolehubah bernama activeCount. Bilangan sel yang layak dalam jadual mesti dipastikan menggunakan kiraan ini. Menggunakan .dialog() fungsi daripada jQuery UI, modal dijana apabila pengiraan selesai. The autoBuka: benar atribut membenarkan modal dibuka secara automatik. Bilangan sel aktif ditunjukkan di dalam modal.
Dalam kes kedua, JavaScript vanila digunakan untuk menduplikasi prosedur yang sama. querySelectorAll() digunakan sebagai ganti jQuery dalam pendekatan ini untuk memilih semua sel jadual, dan mudah forEach() gelung berulang melalui setiap sel. Ungkapan biasa digunakan untuk memadankan kandungan sel, sama seperti dalam penyelesaian jQuery. Jika padanan ditemui, activeCount dikemas kini dan kelas aktif ditambah menggunakan classList.add() kaedah. Akhirnya, mengubah HTML dalaman unsur modal yang dipratentukan dalam DOM mengaktifkan modal. Hasil yang sama seperti contoh jQuery dicapai menggunakan penyelesaian ini, yang tidak bergantung pada perpustakaan luar.
Mengira Sel dengan Kelas Tertentu dan Mencetuskan Modal
Kaedah ini mengira item yang mempunyai kelas tertentu dan secara dinamik memberikan kelas kepada mereka menggunakan jQuery. Ia kemudian membuka tetingkap modal.
$(document).ready(function() {
var activeCount = 0;
$('td').each(function() {
var $this = $(this);
if ($this.text().match(new RegExp(/[0-9][A-Z]/)) !== null) {
$this.addClass('active');
activeCount++;
}
if ($this.text().match(new RegExp(/c[0-9]/)) !== null) {
$this.addClass('none');
}
});
// Trigger the modal with the count of 'active' items
$('#myModal').dialog({ autoOpen: true, modal: true, title: 'Active Count',
open: function() { $(this).html('Number of active items: ' + activeCount); } });
});
Alternatif: Menggunakan JavaScript Vanila untuk Mengira Sel Aktif
Daripada bergantung pada perpustakaan pihak ketiga seperti jQuery, penyelesaian ini menambah kelas dan mengira sel menggunakan JavaScript tulen.
document.addEventListener('DOMContentLoaded', function() {
var cells = document.querySelectorAll('td');
var activeCount = 0;
cells.forEach(function(cell) {
if (/[0-9][A-Z]/.test(cell.textContent)) {
cell.classList.add('active');
activeCount++;
} else if (/c[0-9]/.test(cell.textContent)) {
cell.classList.add('none');
}
});
// Open the modal to display the count
var modal = document.getElementById('myModal');
modal.style.display = 'block';
modal.innerHTML = 'Number of active items: ' + activeCount;
});
Pendekatan Backend: Menggunakan Node.js dan Express dengan Templat EJS
ini Node.js contoh kegunaan templat EJS untuk menjadikan kiraan sel dalam tetingkap modal sambil mengira sel sebelah pelayan.
const express = require('express');
const app = express();
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
const tableData = [['1A', '2B', '3C'], ['c1', '4D', '5E']];
let activeCount = 0;
tableData.forEach(row => {
row.forEach(cell => {
if (/[0-9][A-Z]/.test(cell)) {
activeCount++;
}
});
});
res.render('index', { activeCount });
});
app.listen(3000, () => console.log('Server running on port 3000'));
Ujian Unit dengan Jest untuk Penyelesaian Bahagian Belakang
Di sini, kami membangunkan ujian unit untuk penyelesaian Node.js menggunakan Jest untuk menjadikan logik kiraan aktif berfungsi seperti yang dimaksudkan.
const { countActiveCells } = require('./countActive');
test('counts active cells correctly', () => {
const tableData = [['1A', '2B', '3C'], ['c1', '4D', '5E']];
expect(countActiveCells(tableData)).toBe(4);
});
test('returns zero if no active cells', () => {
const tableData = [['c1', 'c2', 'c3'], ['c4', 'c5', 'c6']];
expect(countActiveCells(tableData)).toBe(0);
});
Memperluas pada Pemilihan Sel dan Pengendalian Kelas dalam JavaScript
Bekerja dengan JavaScript dan jadual HTML juga melibatkan keupayaan untuk mengubah suai kelas secara dinamik sebagai tindak balas kepada input atau kandungan pengguna. Anda boleh melakukan lebih daripada sekadar mengira sel; anda juga boleh mengendalikan input pengguna dan menukar kandungan jadual dengan serta-merta. Sebagai contoh, menggunakan kaedah seperti removeClass() dalam jQuery atau classList.remove() dalam JavaScript vanila, anda boleh mengubah suai kelas secara dinamik, menyerlahkan atau mengalih keluar kelas apabila pengguna mengklik pada sel jadual. Jadual menjadi jauh lebih interaktif akibatnya, dan penyesuaian selanjutnya berdasarkan kemas kini kandungan dalam masa nyata adalah mungkin.
Jadual yang memaparkan data masa nyata di mana sel tertentu perlu diasingkan secara visual bergantung pada perubahan kelas akan menjadi kes penggunaan yang berguna untuk ini. Mudah untuk mengikat fungsi yang menyebabkan pengubahsuaian ini dengan menggunakan pendengar acara. Dalam JavaScript, sebagai contoh, anda boleh menggunakan addEventListener() untuk mendengar acara pada sel tertentu, seperti klik atau tekanan kekunci. Pengubahsuaian kelas tambahan atau kemas kini ke kaunter yang mencerminkan bilangan aktif sel dalam jadual mungkin terhasil daripada interaksi ini.
Anda juga boleh memikirkan situasi di mana sel harus mengemas kini secara automatik tanpa sebarang input daripada pengguna. Kandungan jadual boleh dikemas kini dan dipantau secara berterusan melalui selang masa atau panggilan AJAX. Ungkapan dan kaedah biasa seperti setInterval() benarkan jadual menukar kelasnya secara automatik dan melancarkan modal apabila ambang dicapai. Jadual kini boleh digunakan dalam aplikasi yang lebih dinamik, seperti papan pemuka dan tetapan dipacu data.
Soalan Lazim mengenai Pengendalian Kelas JavaScript dan Pengiraan Sel
- Dalam JavaScript vanila, bagaimanakah saya boleh mengira komponen yang tergolong dalam kelas tertentu?
- Untuk memilih setiap elemen dengan kelas itu, gunakan document.querySelectorAll('.className'); untuk mengira mereka, gunakan length.
- Berdasarkan kandungan sel jadual, bagaimana saya boleh menambah kelas padanya?
- Anda boleh memohon kelas menggunakan classList.add() dan memeriksa kandungan sel menggunakan textContent atau innerText harta benda.
- Apa yang membezakan text() dalam JavaScript vanila daripada textContent dalam jQuery?
- textContent ialah harta JavaScript asli, dan text() ialah kaedah jQuery yang mendapatkan semula atau mengubah suai kandungan elemen yang dipilih.
- Apabila mengira sel yang tergolong dalam kelas tertentu, bagaimana saya boleh memulakan modal?
- Untuk membina modal dalam jQuery dan menjadikannya pencetus bergantung pada bilangan item dengan kelas tertentu, gunakan .dialog().
- Dalam JavaScript, bagaimana saya boleh mengeluarkan kelas daripada elemen?
- Dalam JavaScript vanila, anda boleh gunakan classList.remove('className') untuk mengalih keluar kelas daripada elemen.
Pemikiran Akhir tentang Pengiraan Sel dan Modal
JavaScript atau jQuery boleh digunakan untuk mengurus sel mengira dengan kelas tertentu, seperti aktif, dengan cara yang berkesan. Ungkapan biasa ialah alat yang berguna untuk mengenal pasti corak dalam kandungan jadual, yang memudahkan tugasan kelas dinamik dan interaksi lain.
Tambahan pula, kaedah berguna untuk memaklumkan pengguna tentang status jadual adalah dengan memulakan modal berdasarkan bilangan sel aktif ini. The .dialog() fungsi dalam jQuery atau modal tersuai ialah dua kaedah yang memberikan banyak kepelbagaian dalam mengendalikan kandungan jadual.
Sumber dan Rujukan
- Maklumat mengenai penambahan kelas secara dinamik dan pengendalian kandungan menggunakan JavaScript dan jQuery diperoleh daripada panduan terperinci yang terdapat di Dokumentasi API jQuery .
- Cerapan menggunakan ungkapan biasa dalam JavaScript untuk memanipulasi kandungan telah dirujuk daripada dokumentasi yang ditemui di Dokumen Web MDN .
- Penciptaan modal menggunakan kaedah Dialog UI jQuery dan penggunaan terperincinya boleh diterokai di Dokumentasi Dialog UI jQuery .
- Kepentingan mengira elemen dengan kelas khusus dalam JavaScript dan contoh praktikal boleh disemak dalam artikel seperti Panduan JavaScript FreeCodeCamp .