Bir Tabloda Etkin Sınıf Sayımı ile Modal Tetikleme
İle çalışırken her hücrenin içeriğine göre özel davranış uygulamak isteyebilirsiniz. . Örneğin, sınıfları tablo hücrelerine dinamik olarak atamak için belirli kalıpları veya kriterleri kullanabilirsiniz. Sonuç olarak masanız daha kullanışlı ve ilgi çekici hale gelebilir.
Bu örnekte, belirli gereksinimleri karşılayan tablo hücreleri, adında bir sınıfa sahip olacaktır. onlara eklendi. A Bunu yapmak için her hücreyi inceleyen, içeriğini doğrulayan ve ardından sınıfı uygun şekilde uygulayan işlev kullanılır. Belirli hücreleri verilerine göre organize etmenin verimli bir yöntemidir.
Uyguladıktan sonra Sınıfı bir hücre alt kümesine ayırmak, bu sınıfa sahip hücrelerin sayısını saymak sık sık atılacak bir sonraki adım olabilir. Eğer bir olay ya da eylem başlatmak istiyorsanız sayımı gösteren bir mod açmak, bu hücreleri saymak oldukça işinize yarayabilir.
Bu eğitim size, aşağıdaki özelliklere sahip hücrelerin sayısını saymak için JavaScript'i nasıl kullanacağınızı öğretecektir: sınıf ve sayımı gösteren bir modeli otomatik olarak başlatmak için. Kullanma Çözüm basit, etkili ve uygulaması basittir.
Emretmek | Kullanım Örneği | |
---|---|---|
.each() | Eşleşen öğeler kümesindeki her öğe, bu jQuery işlevi tarafından yinelenir. Her tablo hücresi üzerinde yineleme yaparak koşullu mantık veya sınıfları uygular ( | ) in our example. |
addClass() | The selected items receive one or more class names added to them by this jQuery method. The script applies the veya Hücreleri içeriklerine göre sınıflandırın. | |
.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. | |
.metin() | 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 | hücre belirli bir desenle eşleşir. |
RegExp() | Düzenli ifadeler bu JavaScript yapıcısıyla yapılır. Komut dosyası, aşağıdaki gibi kalıpları tanımlayarak içeriğe dayalı olarak sınıflar atayabilir: veya . | |
classList.add() | Bu temel JavaScript tekniği, bir öğeye belirli bir sınıf verir. Vanilya JavaScript çözümündeki jQuery'nin addClass() işlevine benzer şekilde çalışır; veya Koşullara bağlı olarak sınıf. | |
DOMContentLoaded | HTML belgesinin yüklenmesi ve ayrıştırılması tamamlandığında DOMContentLoaded olayı tetiklenir. Vanilya JavaScript örneğinde, betiğin DOM'un yüklenmesi bittikten sonra yürütülmesini sağlar. | |
querySelectorAll() | Belgedeki verilen CSS seçiciyle eşleşen her öğe bu JavaScript işlevi tarafından döndürülür. Temel JavaScript örneğinde, her şeyi seçmek için kullanılır. | element in the table for further processing. |
Herbiri için() | 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. |
Komut Dosyasını Anlamak: Hücreleri Saymak ve Bir Modalı Tetiklemek
İlk komut dosyası örneğinde, her tablo hücresi yinelenir, içeriği değerlendirilir ve değerlendirmeye bağlı olarak bir sınıf atanır. . Bu özellik, her bir adımın yinelenmesiyle mümkün hale gelir.
ile yapıcıda, harflerin takip ettiği sayıları eşleştirmek için düzenli bir ifade oluşturulur. Bu teknik, "1A" veya "3C" gibi veri içeren hücrelerin geçerli sınıfla tanınmasını ve etiketlenmesini sağlar. Hücre, adı verilen ayrı bir sınıf alır. içerik farklı bir kalıpla eşleşiyorsa "c" ve ardından bir sayı gelir. Bu, tablodaki verilerin daha kesin bir şekilde sınıflandırılmasını mümkün kılar. Ayrıca, yöntem, hücrelerin halihazırda sahip oldukları sınıfları silmeden bu sınıfları ekleyebileceğini garanti eder.
Bir sonraki adım, uygun hücreleri saymak ve hepsi aktif sınıfla etiketlendikten sonra bir model başlatmaktır. Bir hücre aktif sınıfı her aldığında, sayı artırılır ve adlı bir değişkene kaydedilir. . Tablodaki uygun hücrelerin sayısı bu sayım kullanılarak belirlenmelidir. kullanarak jQuery UI'dan bir işlev kullanıldığında, sayma bittiğinde bir modal oluşturulur. özellik, modalın otomatik olarak açılmasına izin verir. Aktif hücrelerin sayısı modal içinde gösterilir.
İkinci durumda, aynı prosedürü kopyalamak için vanilya JavaScript kullanılır. Bu yaklaşımda tüm tablo hücrelerini seçmek için jQuery yerine kullanılır ve basit bir döngü her hücrede yinelenir. Tıpkı jQuery çözümünde olduğu gibi hücre içeriğini eşleştirmek için normal ifadeler kullanılır. Bir eşleşme bulunursa activeCount güncellenir ve active sınıfı kullanılarak eklenir. Yöntem. Sonuçta, DOM'daki önceden tanımlanmış bir modal öğenin dahili HTML'sini değiştirmek, modeli etkinleştirir. Dış kütüphanelere dayanmayan bu çözüm kullanılarak jQuery örneğiyle aynı sonuca ulaşıldı.
Belirli Bir Sınıfa Sahip Hücreleri Saymak ve Bir Modalı Tetiklemek
Bu yöntem, belirli bir sınıfa sahip öğeleri sayar ve sınıfları dinamik olarak bunlara kullanarak atar. . Daha sonra kalıcı bir pencere açar.
$(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: Aktif Hücreleri Saymak için Vanilla JavaScript Kullanmak
Bu çözüm, jQuery gibi üçüncü taraf kitaplıklara güvenmek yerine bir sınıf ekler ve hücreleri sayar. .
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;
});
Arka Uç Yaklaşımı: Node.js ve Express'i EJS Şablonlamayla Kullanma
Bu örnek kullanımlar sunucu tarafında hücreleri sayarken hücre sayısını kalıcı bir pencerede oluşturmak için.
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'));
Arka Uç Çözümü için Jest ile Birim Testi
Burada Node.js çözümü için birim testleri geliştiriyoruz. aktif sayım mantığının amaçlandığı gibi çalışmasını sağlamak.
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);
});
JavaScript'te Hücre Seçimi ve Sınıf İşlemeyi Genişletmek
Birlikte çalışmak Ve aynı zamanda kullanıcı girdisine veya içeriğine yanıt olarak sınıfları dinamik olarak değiştirme yeteneğini de içerir. Hücreleri saymaktan daha fazlasını yapabilirsiniz; ayrıca kullanıcı girişlerini yönetebilir ve tablonun içeriğini anında değiştirebilirsiniz. Örneğin, gibi yöntemleri kullanarak jQuery'de veya classList.remove() Vanilya JavaScript'te, kullanıcı bir tablo hücresini tıkladığında sınıfı dinamik olarak değiştirebilir, vurgulayabilir ve hatta sınıfı kaldırabilirsiniz. Sonuç olarak tablolar çok daha etkileşimli hale geliyor ve gerçek zamanlı içerik güncellemelerine dayalı olarak daha fazla özelleştirme mümkün oluyor.
Belirli hücrelerin sınıf değişikliğine bağlı olarak görsel olarak ayrılması gereken gerçek zamanlı verileri gösteren bir tablo bunun için yararlı bir kullanım örneği olacaktır. Olay dinleyicilerini kullanarak bu değişikliklere neden olan işlevleri bağlamak kolaydır. Örneğin JavaScript'te şunları kullanabilirsiniz: tıklamalar veya tuşlara basma gibi belirli hücrelerdeki olayları dinlemek için. sayısını yansıtan bir sayaçta ek sınıf değişiklikleri ve hatta güncellemeler Tablodaki hücreler bu etkileşimden kaynaklanabilir.
Ayrıca, kullanıcıların herhangi bir girişi olmadan hücrelerin otomatik olarak güncellenmesi gereken durumları da düşünebilirsiniz. Tablo içeriği aralıklı veya AJAX çağrıları yoluyla sürekli olarak güncellenebilir ve izlenebilir. Düzenli ifadeler ve yöntemler gibi tablonun otomatik olarak sınıflarını değiştirmesine ve bir eşiğe ulaşıldığında bir model başlatmasına izin verin. Tablolar artık kontrol panelleri ve veriye dayalı ayarlar gibi daha dinamik uygulamalarda kullanılabilir.
- Vanilya JavaScript'te belirli bir sınıfa ait bileşenleri nasıl sayabilirim?
- Bu sınıftaki her öğeyi seçmek için şunu kullanın: ; onları saymak için kullanın .
- Tablo hücresinin içeriğine bağlı olarak ona nasıl sınıf ekleyebilirim?
- Kullanarak bir sınıf uygulayabilirsiniz ve kullanarak bir hücrenin içeriğini inceleyin veya özellikler.
- Ne ayırt edilir Vanilla JavaScript'te jQuery'de mi?
- yerel bir JavaScript özelliğidir ve seçilen öğelerin içeriğini alan veya değiştiren bir jQuery yöntemidir.
- Belirli bir sınıfa ait hücreleri sayarken nasıl bir modal başlatabilirim?
- JQuery'de bir model oluşturmak ve belirli bir sınıfa sahip öğelerin sayısına bağlı olarak tetiklenmesini sağlamak için şunu kullanın: .
- JavaScript'te bir sınıfı bir öğeden nasıl çıkarabilirim?
- Vanilya JavaScript'te kullanabilirsiniz bir öğeden bir sınıfı kaldırmak için.
Belirli bir sınıfa sahip hücrelerin sayılmasını yönetmek için JavaScript veya jQuery kullanılabilir; , etkili bir şekilde. Düzenli ifadeler, dinamik sınıf atamalarını ve diğer etkileşimleri kolaylaştıran, tablo içeriğindeki kalıpları tanımlamak için yararlı bir araçtır.
Ayrıca, kullanıcıları bir tablonun durumu hakkında bilgilendirmenin yararlı bir yöntemi, bu aktif hücrelerin sayısına dayalı bir model başlatmaktır. jQuery'deki işlev veya özel bir model, tablo içeriğinin işlenmesi söz konusu olduğunda çok yönlülük sağlayan iki yöntemdir.
- Sınıfların dinamik olarak eklenmesi ve JavaScript ile jQuery kullanılarak içeriğin işlenmesine ilişkin bilgiler, şu adreste bulunan ayrıntılı bir kılavuzdan alınmıştır: jQuery API Belgeleri .
- İçeriği değiştirmek için JavaScript'te normal ifadelerin kullanımına ilişkin bilgiler, şu adreste bulunan belgelerden alınmıştır: MDN Web Belgeleri .
- jQuery UI Dialog yöntemini kullanarak modal oluşturma ve bunun ayrıntılı kullanımı şu adreste incelenebilir: jQuery Kullanıcı Arayüzü İletişim Kutusu Belgeleri .
- JavaScript'te belirli sınıflara sahip öğeleri saymanın önemi ve pratik örnekler gibi makalelerde incelenebilir FreeCodeCamp JavaScript Kılavuzu .