تشغيل مشروط مع عدد الفئات النشطة في الجدول
قد ترغب في تطبيق سلوك مخصص بناءً على محتويات كل خلية عند العمل بها . على سبيل المثال، يمكنك استخدام أنماط أو معايير محددة لتعيين فئات لخلايا الجدول ديناميكيًا. قد يصبح الجدول الخاص بك أكثر فائدة وجاذبية نتيجة لذلك.
في هذا المثال، سيكون لخلايا الجدول التي تلبي متطلبات معينة فئة مسماة مضاف إليهم. أ يتم استخدام الوظيفة التي تفحص كل خلية، وتتحقق من محتوياتها، ثم تطبق الفئة بشكل مناسب للقيام بذلك. إنها طريقة إنتاجية لتنظيم خلايا معينة وفقًا لبياناتها.
بعد تطبيق فئة إلى مجموعة فرعية من الخلايا، فقد يكون حساب عدد الخلايا التي تحتوي على هذه الفئة خطوة تالية متكررة. إذا كنت ترغب في بدء حدث أو إجراء، مثل فتح نموذج يظهر العدد، فقد يكون حساب هذه الخلايا مفيدًا جدًا.
سيعلمك هذا البرنامج التعليمي كيفية استخدام JavaScript لحساب عدد الخلايا التي تحتوي على class ولتشغيل مشروط يعرض العدد تلقائيًا. استخدام ، الحل واضح ومباشر وفعال وسهل التنفيذ.
يأمر | مثال للاستخدام | |
---|---|---|
.each() | يتم تكرار كل عنصر في مجموعة العناصر المتطابقة بواسطة وظيفة jQuery هذه. يطبق المنطق الشرطي أو الفئات من خلال التكرار على كل خلية في الجدول ( | ) in our example. |
addClass() | The selected items receive one or more class names added to them by this jQuery method. The script applies the أو تصنيف الخلايا حسب محتواها. | |
الحوار () | 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. | |
.نص() | 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 | تتطابق الخلية مع نمط معين. |
RegExp() | يتم إنشاء التعبيرات العادية باستخدام مُنشئ JavaScript هذا. قد يقوم البرنامج النصي بتعيين فئات بناءً على المحتوى عن طريق تحديد أنماط مثل أو . | |
classList.add() | تمنح تقنية JavaScript الأساسية هذه العنصر فئة معينة. وهو يعمل بشكل مشابه لـ addClass() الخاص بـ jQuery في حل Vanilla JavaScript، حيث يضيف أو الطبقة حسب الظروف. | |
DOMContentLoaded | عند انتهاء تحميل مستند HTML وتحليله، يتم تشغيل حدث DOMContentLoaded. في مثال JavaScript الفانيليا، يتم التأكد من تنفيذ البرنامج النصي بعد انتهاء تحميل DOM. | |
querySelectorAll() | يتم إرجاع كل عنصر في المستند يطابق محدد CSS المحدد بواسطة وظيفة JavaScript هذه. في مثال JavaScript الأساسي، يتم استخدامه لاختيار كل منها | element in the table for further processing. |
لكل () | 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. |
فهم البرنامج النصي: عد الخلايا وإطلاق مشروط
في مثال البرنامج النصي الأول، يتم تكرار كل خلية في الجدول، ويتم تقييم محتواها، ويتم تعيين فئة اعتمادًا على التقييم باستخدام . أصبحت هذه الميزة ممكنة من خلال التكرار من خلال كل من
مع منشئ، يتم إنشاء تعبير عادي لمطابقة الأرقام تليها الحروف. تتأكد هذه التقنية من التعرف على الخلايا التي تحتوي على بيانات، مثل "1A" أو "3C"، وتصنيفها بالفئة الحالية. تتلقى الخلية فئة منفصلة تسمى إذا كان المحتوى يطابق نمطًا مختلفًا، مثل "c" متبوعًا برقم. وهذا يجعل من الممكن تصنيف البيانات في الجدول بشكل أكثر دقة. علاوة على ذلك، تضمن الطريقة أن الخلايا يمكنها إضافة هذه الفئات دون حذف أي فئات قد تكون موجودة بالفعل.
الخطوة التالية هي حساب الخلايا المناسبة وبدء نموذج مشروط بعد أن يتم تمييزها جميعًا بالفئة النشطة. في كل مرة تحصل فيها الخلية على الفئة النشطة، يتم زيادة العدد وحفظه في متغير مسمى . يجب التأكد من عدد الخلايا المؤهلة في الجدول باستخدام هذا العدد. باستخدام دالة من jQuery UI، يتم إنشاء شكل مشروط عند انتهاء العد. ال تسمح السمة بفتح المشروط تلقائيًا. يظهر عدد الخلايا النشطة داخل النموذج.
في الحالة الثانية، يتم استخدام Vanilla JavaScript لتكرار الإجراء المماثل. يتم استخدامه بدلاً من jQuery في هذا الأسلوب لتحديد كافة خلايا الجدول، وبشكل مباشر حلقة تتكرر من خلال كل خلية. يتم استخدام التعبيرات العادية لمطابقة محتوى الخلية، تمامًا كما هو الحال في حل jQuery. إذا تم اكتشاف تطابق، فسيتم تحديث activeCount وتتم إضافة الفئة النشطة باستخدام طريقة. في النهاية، يؤدي تغيير HTML الداخلي لعنصر شكلي محدد مسبقًا في DOM إلى تنشيط النموذج. يتم تحقيق نفس نتيجة مثال jQuery باستخدام هذا الحل، الذي لا يعتمد على مكتبات خارجية.
عد الخلايا ذات فئة محددة وتشغيل مشروط
تحسب هذه الطريقة العناصر التي لها فئة معينة وتقوم بتعيين الفئات لها ديناميكيًا باستخدامها . ثم يفتح نافذة مشروطة.
$(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); } });
});
البديل: استخدام Vanilla JavaScript لحساب الخلايا النشطة
بدلاً من الاعتماد على مكتبات الطرف الثالث مثل jQuery، يضيف هذا الحل فئة ويحسب الخلايا المستخدمة .
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;
});
نهج الواجهة الخلفية: استخدام Node.js وExpress مع قوالب EJS
هذا استخدامات المثال لعرض عدد الخلايا في نافذة مشروطة أثناء حساب الخلايا من جانب الخادم.
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'));
اختبار الوحدة باستخدام Jest لحل الواجهة الخلفية
هنا، نقوم بتطوير اختبارات الوحدة لحل Node.js باستخدام لجعل منطق العد النشط يعمل على النحو المنشود.
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);
});
التوسع في اختيار الخلايا والتعامل مع الفئة في جافا سكريبت
العمل مع و يتضمن أيضًا القدرة على تعديل الفئات ديناميكيًا استجابةً لإدخال المستخدم أو المحتوى. يمكنك أن تفعل أكثر من مجرد عد الخلايا؛ يمكنك أيضًا التعامل مع مدخلات المستخدم وتغيير محتوى الجدول على الفور. على سبيل المثال، باستخدام أساليب مثل في مسج أو classList.remove() في Vanilla JavaScript، يمكنك تعديل الفئة ديناميكيًا، أو تمييزها، أو حتى إزالتها عندما ينقر المستخدم على خلية جدول. ونتيجة لذلك، تصبح الجداول أكثر تفاعلية إلى حد كبير، ومن الممكن إجراء مزيد من التخصيص بناءً على تحديثات المحتوى في الوقت الفعلي.
سيكون الجدول الذي يعرض بيانات في الوقت الفعلي حيث يلزم فصل خلايا معينة بشكل مرئي اعتمادًا على تغيير الفئة، حالة استخدام مفيدة لهذا الغرض. من السهل ربط الوظائف التي تسبب هذه التعديلات باستخدام مستمعي الأحداث. في جافا سكريبت، على سبيل المثال، يمكنك استخدام للاستماع إلى الأحداث في خلايا معينة، مثل النقرات أو الضغطات على المفاتيح. تعديلات إضافية على الفئة أو حتى تحديثات للعداد الذي يعكس عدد قد تنتج الخلايا الموجودة في الجدول من هذا التفاعل.
يمكنك أيضًا التفكير في المواقف التي يجب فيها تحديث الخلايا تلقائيًا دون أي إدخال من المستخدم. يمكن تحديث محتوى الجدول ومراقبته باستمرار عبر فاصل زمني أو مكالمات AJAX. التعبيرات والأساليب العادية مثل السماح للجدول بتغيير فئاته تلقائيًا وإطلاق مشروط عند الوصول إلى الحد الأدنى. يمكن الآن استخدام الجداول في تطبيقات أكثر ديناميكية، مثل لوحات المعلومات والإعدادات المستندة إلى البيانات.
- في Vanilla JavaScript، كيف يمكنني حساب المكونات التي تنتمي إلى فئة معينة؟
- لتحديد كل عنصر بهذه الفئة، استخدم ; لحسابهم، استخدم .
- بناءً على محتوى خلية الجدول، كيف يمكنني إضافة فصل دراسي إليها؟
- يمكنك تطبيق فئة باستخدام وفحص محتويات الخلية باستخدام أو ملكيات.
- ما يميز في الفانيليا جافا سكريبت من في مسج؟
- هي خاصية JavaScript أصلية، و هي إحدى طرق jQuery التي تسترد أو تعدل محتوى العناصر المحددة.
- عند حساب الخلايا التي تنتمي إلى فئة معينة، كيف يمكنني بدء نموذج مشروط؟
- لإنشاء نموذج مشروط في jQuery وتشغيله اعتمادًا على عدد العناصر ذات فئة معينة، استخدم .
- في JavaScript، كيف يمكنني أخذ فصل دراسي من عنصر ما؟
- في الفانيليا جافا سكريبت، يمكنك استخدام لإزالة فئة من عنصر.
يمكن استخدام JavaScript أو jQuery لإدارة عدد الخلايا بفئة محددة، مثل ، بطريقة فعالة. تعد التعبيرات العادية أداة مفيدة لتحديد الأنماط في محتوى الجدول، مما يسهل تعيينات الفصل الديناميكية والتفاعلات الأخرى.
علاوة على ذلك، هناك طريقة مفيدة لإعلام المستخدمين بحالة الجدول وهي بدء نموذج مشروط استنادًا إلى عدد هذه الخلايا النشطة. ال تعتبر الوظيفة في jQuery أو النموذج المخصص طريقتين توفران قدرًا كبيرًا من التنوع عندما يتعلق الأمر بمعالجة محتوى الجدول.
- تم الحصول على معلومات حول إضافة الفئات ديناميكيًا ومعالجة المحتوى باستخدام JavaScript وjQuery من دليل تفصيلي متوفر على وثائق واجهة برمجة تطبيقات jQuery .
- تمت الإشارة إلى الأفكار حول استخدام التعبيرات العادية في JavaScript لمعالجة المحتوى من الوثائق الموجودة في مستندات ويب MDN .
- يمكن استكشاف إنشاء الوسائط باستخدام طريقة jQuery UI Dialog واستخدامها التفصيلي على وثائق حوار واجهة المستخدم jQuery .
- يمكن مراجعة أهمية حساب العناصر ذات الفئات المحددة في JavaScript والأمثلة العملية في مقالات مثل دليل FreeCodeCamp جافا سكريبت .