Tablo Hücrelerini Saymak İçin JavaScript'te Belirli Bir Sınıfı Kullanma

Tablo Hücrelerini Saymak İçin JavaScript'te Belirli Bir Sınıfı Kullanma
Tablo Hücrelerini Saymak İçin JavaScript'te Belirli Bir Sınıfı Kullanma

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. HTML tabloları. Ö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. aktif onlara eklendi. A JavaScript 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 aktif 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: aktif sınıf ve sayımı gösteren bir modeli otomatik olarak başlatmak için. Kullanma jQueryÇö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 aktif veya hiçbiri 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: sayıların ardından büyük harfler gelir veya c ve ardından rakamlar.
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; aktif veya hiçbiri 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. jQuery. Bu özellik, her bir adımın yinelenmesiyle mümkün hale gelir. kullanarak tablodaki öğeleri .her biri() Yöntem. Bu döngüde iki koşullu kontrolü uygulamak için düzenli ifadeler kullanılır. Bu modeller, her hücrenin içeriğinin belirli bir formata uyup uymadığını tespit eder. Hücre kazanır aktif içerik sayı ve büyük harf gibi bir düzeni takip ediyorsa sınıf. Hücrelerin dinamik olarak kategorize edilmesi için bu önemlidir.

ile RegExp() 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. hiçbiri 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, addClass() 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. aktifSayı. Tablodaki uygun hücrelerin sayısı bu sayım kullanılarak belirlenmelidir. kullanarak .dialog() jQuery UI'dan bir işlev kullanıldığında, sayma bittiğinde bir modal oluşturulur. otomatikAçık: doğru ö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. querySelectorAll() Bu yaklaşımda tüm tablo hücrelerini seçmek için jQuery yerine kullanılır ve basit bir Herbiri için() 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. classList.add() 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. jQuery. 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. saf JavaScript.

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 Node.js örnek kullanımlar EJS şablonlaması 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. Alay 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 JavaScript Ve HTML tabloları 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 removeClass() 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: addEventListener() 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 aktif 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 setInterval() 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.

JavaScript Sınıf İşleme ve Hücre Sayımı ile İlgili Sıkça Sorulan Sorular

  1. Vanilya JavaScript'te belirli bir sınıfa ait bileşenleri nasıl sayabilirim?
  2. Bu sınıftaki her öğeyi seçmek için şunu kullanın: document.querySelectorAll('.className'); onları saymak için kullanın length.
  3. Tablo hücresinin içeriğine bağlı olarak ona nasıl sınıf ekleyebilirim?
  4. Kullanarak bir sınıf uygulayabilirsiniz classList.add() ve kullanarak bir hücrenin içeriğini inceleyin textContent veya innerText özellikler.
  5. Ne ayırt edilir text() Vanilla JavaScript'te textContent jQuery'de mi?
  6. textContent yerel bir JavaScript özelliğidir ve text() seçilen öğelerin içeriğini alan veya değiştiren bir jQuery yöntemidir.
  7. Belirli bir sınıfa ait hücreleri sayarken nasıl bir modal başlatabilirim?
  8. 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: .dialog().
  9. JavaScript'te bir sınıfı bir öğeden nasıl çıkarabilirim?
  10. Vanilya JavaScript'te kullanabilirsiniz classList.remove('className') bir öğeden bir sınıfı kaldırmak için.

Hücre Sayımı ve Modallar Üzerine Son Düşünceler

Belirli bir sınıfa sahip hücrelerin sayılmasını yönetmek için JavaScript veya jQuery kullanılabilir; aktif, 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. .dialog() 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.

Kaynaklar ve Referanslar
  1. 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 .
  2. İç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 .
  3. 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 .
  4. JavaScript'te belirli sınıflara sahip öğeleri saymanın önemi ve pratik örnekler gibi makalelerde incelenebilir FreeCodeCamp JavaScript Kılavuzu .