একটি টেবিলে সক্রিয় ক্লাস কাউন্ট সহ একটি মডেল ট্রিগার করা
আপনি কাজ করার সময় প্রতিটি কক্ষের বিষয়বস্তুর উপর ভিত্তি করে কাস্টম আচরণ প্রয়োগ করতে চাইতে পারেন . উদাহরণস্বরূপ, আপনি টেবিলের ঘরগুলিতে গতিশীলভাবে ক্লাস বরাদ্দ করতে নির্দিষ্ট নিদর্শন বা মানদণ্ড ব্যবহার করতে পারেন। ফলস্বরূপ আপনার টেবিল আরও দরকারী এবং আকর্ষক হয়ে উঠতে পারে।
এই উদাহরণে, নির্দিষ্ট প্রয়োজনীয়তা পূরণ করে এমন সারণি কক্ষের নাম একটি ক্লাস থাকবে তাদের যোগ করা হয়েছে. ক ফাংশন যা প্রতিটি ঘর পরীক্ষা করে, এর বিষয়বস্তু যাচাই করে এবং তারপর ক্লাসটি যথাযথভাবে প্রয়োগ করে এটি করতে ব্যবহৃত হয়। এটি তাদের ডেটা অনুসারে নির্দিষ্ট কোষগুলিকে সংগঠিত করার একটি উত্পাদনশীল পদ্ধতি।
আবেদন করার পর কোষের একটি উপসেটের শ্রেণিতে, এই শ্রেণির কোষের সংখ্যা গণনা করা একটি ঘন ঘন পরবর্তী পদক্ষেপ হতে পারে। আপনি যদি একটি ইভেন্ট বা অ্যাকশন শুরু করতে চান, যেমন একটি মডেল খোলা যা গণনা দেখায়, এই ঘরগুলি গণনা করা বেশ সহায়ক হতে পারে।
এই টিউটোরিয়ালটি আপনাকে শেখাবে কিভাবে জাভাস্ক্রিপ্ট ব্যবহার করে সেলের সংখ্যা গণনা করতে হয় ক্লাস এবং স্বয়ংক্রিয়ভাবে একটি মডেল চালু করতে যা গণনা দেখায়। ব্যবহার করে , সমাধান সহজবোধ্য, দক্ষ, এবং বাস্তবায়ন করা সহজ।
আদেশ | ব্যবহারের উদাহরণ | |
---|---|---|
.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 বা তাদের বিষয়বস্তু অনুযায়ী কোষে শ্রেণী। | |
.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 | ঘর একটি নির্দিষ্ট প্যাটার্ন মেলে. |
RegExp() | এই জাভাস্ক্রিপ্ট কনস্ট্রাক্টর দিয়ে রেগুলার এক্সপ্রেশন তৈরি করা হয়। স্ক্রিপ্ট যেমন নিদর্শন সনাক্ত করে বিষয়বস্তুর উপর ভিত্তি করে ক্লাস বরাদ্দ করতে পারে বা . | |
classList.add() | এই মৌলিক জাভাস্ক্রিপ্ট কৌশল একটি উপাদান একটি নির্দিষ্ট শ্রেণী দেয়. এটি ভ্যানিলা জাভাস্ক্রিপ্ট সমাধানে jQuery-এর addClass() এর মতোই কাজ করে, যোগ করে বা শর্তের উপর নির্ভর করে ক্লাস। | |
DOMContentLoaded | যখন HTML নথি লোড করা এবং পার্স করা শেষ হয়, তখন DOMContentLoaded ইভেন্টটি ট্রিগার হয়৷ ভ্যানিলা জাভাস্ক্রিপ্ট উদাহরণে, এটি নিশ্চিত করে যে DOM লোড করা শেষ হলে স্ক্রিপ্টটি কার্যকর হয়। | |
querySelectorAll() | প্রদত্ত CSS নির্বাচকের সাথে মেলে ডকুমেন্টের প্রতিটি উপাদান এই জাভাস্ক্রিপ্ট ফাংশন দ্বারা ফেরত দেওয়া হয়। মৌলিক জাভাস্ক্রিপ্ট উদাহরণে, এটি প্রতিটি বাছাই করতে ব্যবহার করা হয় | 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 থেকে ফাংশন, গণনা শেষ হলে একটি মডেল তৈরি করা হয়। দ বৈশিষ্ট্য মোডাল স্বয়ংক্রিয়ভাবে খুলতে অনুমতি দেয়। মোডালের ভিতরে সক্রিয় কোষের সংখ্যা দেখানো হয়েছে।
দ্বিতীয় ক্ষেত্রে, ভ্যানিলা জাভাস্ক্রিপ্ট অভিন্ন পদ্ধতির নকল করতে ব্যবহৃত হয়। সমস্ত টেবিল ঘর নির্বাচন করতে এই পদ্ধতিতে jQuery-এর জায়গায় ব্যবহার করা হয় এবং একটি সোজা লুপ প্রতিটি কক্ষের মাধ্যমে পুনরাবৃত্তি করে। রেগুলার এক্সপ্রেশনগুলি jQuery সলিউশনের মতোই ঘরের বিষয়বস্তুর সাথে মেলে ব্যবহার করা হয়। যদি একটি মিল আবিষ্কৃত হয়, সক্রিয় কাউন্ট আপডেট করা হয় এবং সক্রিয় শ্রেণী ব্যবহার করে যোগ করা হয় পদ্ধতি শেষ পর্যন্ত, DOM-এ একটি পূর্বনির্ধারিত মডেল উপাদানের অভ্যন্তরীণ HTML পরিবর্তন করা মোডালটিকে সক্রিয় করে। 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); } });
});
বিকল্প: সক্রিয় কোষ গণনা করতে ভ্যানিলা জাভাস্ক্রিপ্ট ব্যবহার করা
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;
});
ব্যাকএন্ড অ্যাপ্রোচ: EJS টেমপ্লেটিং সহ Node.js এবং Express ব্যবহার করা
এই উদাহরণ ব্যবহার করে সার্ভার-সাইড সেল গণনা করার সময় একটি মডেল উইন্ডোতে সেল গণনা রেন্ডার করতে।
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'));
ব্যাকএন্ড সলিউশনের জন্য জেস্ট সহ ইউনিট পরীক্ষা
এখানে, আমরা 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);
});
জাভাস্ক্রিপ্টে সেল নির্বাচন এবং ক্লাস হ্যান্ডলিং সম্প্রসারণ
সাথে কাজ করছে এবং ব্যবহারকারীর ইনপুট বা বিষয়বস্তুর প্রতিক্রিয়ায় ক্লাসগুলিকে গতিশীলভাবে পরিবর্তন করার ক্ষমতাও জড়িত। আপনি কেবল কোষ গণনা করার চেয়ে আরও বেশি কিছু করতে পারেন; আপনি ব্যবহারকারীর ইনপুটগুলি পরিচালনা করতে পারেন এবং তাত্ক্ষণিকভাবে টেবিলের বিষয়বস্তু পরিবর্তন করতে পারেন। যেমন পদ্ধতি ব্যবহার করে jQuery বা classList.remove() ভ্যানিলা জাভাস্ক্রিপ্টে, আপনি যখন কোনও ব্যবহারকারী টেবিলের ঘরে ক্লিক করেন তখন আপনি ক্লাসটি গতিশীলভাবে পরিবর্তন করতে, হাইলাইট করতে বা এমনকি ক্লাসটি সরিয়ে দিতে পারেন। ফলস্বরূপ টেবিলগুলি যথেষ্ট বেশি ইন্টারেক্টিভ হয়ে ওঠে এবং রিয়েল টাইমে সামগ্রীর আপডেটের উপর ভিত্তি করে আরও কাস্টমাইজেশন সম্ভব।
একটি টেবিল রিয়েল-টাইম ডেটা প্রদর্শন করে যেখানে নির্দিষ্ট কক্ষগুলিকে একটি শ্রেণি পরিবর্তনের উপর নির্ভর করে দৃশ্যমানভাবে পৃথক করা প্রয়োজন এটির জন্য একটি দরকারী ব্যবহারের ক্ষেত্রে। ইভেন্ট শ্রোতাদের ব্যবহার করে এই পরিবর্তনগুলি ঘটায় এমন ফাংশনগুলিকে আবদ্ধ করা সহজ। জাভাস্ক্রিপ্টে, উদাহরণস্বরূপ, আপনি ব্যবহার করতে পারেন নির্দিষ্ট কক্ষে ইভেন্ট শোনার জন্য, যেমন ক্লিক বা কী প্রেস। অতিরিক্ত শ্রেণী পরিবর্তন বা এমনকি একটি কাউন্টারে আপডেটের সংখ্যা প্রতিফলিত করে টেবিলের কোষ এই মিথস্ক্রিয়া থেকে ফলাফল হতে পারে.
আপনি এমন পরিস্থিতিতেও চিন্তা করতে পারেন যেখানে ব্যবহারকারীর কাছ থেকে কোনও ইনপুট ছাড়াই সেলগুলি স্বয়ংক্রিয়ভাবে আপডেট হওয়া উচিত। সারণী বিষয়বস্তু একটি বিরতি বা AJAX কলের মাধ্যমে ক্রমাগত আপডেট এবং নিরীক্ষণ করা যেতে পারে। নিয়মিত অভিব্যক্তি এবং পদ্ধতি যেমন টেবিলটিকে স্বয়ংক্রিয়ভাবে তার ক্লাস পরিবর্তন করার অনুমতি দিন এবং একটি থ্রেশহোল্ডে পৌঁছে গেলে একটি মডেল চালু করুন। টেবিলগুলি এখন আরও গতিশীল অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে, যেমন ড্যাশবোর্ড এবং ডেটা-চালিত সেটিংস৷
- ভ্যানিলা জাভাস্ক্রিপ্টে, আমি কীভাবে একটি নির্দিষ্ট শ্রেণীর অন্তর্গত উপাদানগুলি গণনা করতে পারি?
- সেই শ্রেণীর সাথে প্রতিটি উপাদান নির্বাচন করতে, ব্যবহার করুন ; তাদের গণনা করতে, ব্যবহার করুন .
- টেবিল ঘরের বিষয়বস্তুর উপর ভিত্তি করে, আমি কিভাবে এটিতে একটি ক্লাস যোগ করতে পারি?
- আপনি ব্যবহার করে একটি ক্লাস আবেদন করতে পারেন এবং ব্যবহার করে একটি কক্ষের বিষয়বস্তু পরিদর্শন করুন বা বৈশিষ্ট্য
- কি আলাদা করে ভ্যানিলা জাভাস্ক্রিপ্ট থেকে jQuery এ?
- একটি নেটিভ জাভাস্ক্রিপ্ট সম্পত্তি, এবং একটি jQuery পদ্ধতি যা নির্বাচিত উপাদানের বিষয়বস্তু পুনরুদ্ধার বা সংশোধন করে।
- একটি নির্দিষ্ট শ্রেণীর অন্তর্গত কোষ গণনা করার সময়, আমি কিভাবে একটি মডেল শুরু করতে পারি?
- jQuery এ একটি মডেল তৈরি করতে এবং এটিকে একটি নির্দিষ্ট শ্রেণীর আইটেমের সংখ্যার উপর নির্ভর করে ট্রিগার করতে, ব্যবহার করুন .
- জাভাস্ক্রিপ্টে, আমি কিভাবে একটি উপাদান থেকে একটি ক্লাস নিতে পারি?
- ভ্যানিলা জাভাস্ক্রিপ্টে, আপনি ব্যবহার করতে পারেন একটি উপাদান থেকে একটি ক্লাস সরাতে।
জাভাস্ক্রিপ্ট বা jQuery একটি নির্দিষ্ট শ্রেণী সহ গণনা কক্ষ পরিচালনা করতে ব্যবহার করা যেতে পারে, যেমন , একটি কার্যকর পদ্ধতিতে। রেগুলার এক্সপ্রেশনগুলি টেবিলের বিষয়বস্তুতে নিদর্শন সনাক্ত করার জন্য একটি দরকারী টুল, যা গতিশীল ক্লাস অ্যাসাইনমেন্ট এবং অন্যান্য মিথস্ক্রিয়াগুলিকে সহজতর করে।
উপরন্তু, একটি টেবিলের অবস্থা ব্যবহারকারীদের অবহিত করার একটি দরকারী পদ্ধতি হল এই সক্রিয় কোষের সংখ্যার উপর ভিত্তি করে একটি মডেল শুরু করা। দ jQuery-এ ফাংশন বা একটি কাস্টম মোডাল হল দুটি পদ্ধতি যা টেবিলের বিষয়বস্তু পরিচালনার ক্ষেত্রে প্রচুর বহুমুখিতা প্রদান করে।
- গতিশীলভাবে ক্লাস যোগ করা এবং জাভাস্ক্রিপ্ট এবং jQuery ব্যবহার করে বিষয়বস্তু পরিচালনার তথ্য এখানে উপলব্ধ একটি বিস্তারিত গাইড থেকে নেওয়া হয়েছিল jQuery API ডকুমেন্টেশন .
- বিষয়বস্তু ম্যানিপুলেট করার জন্য জাভাস্ক্রিপ্টে নিয়মিত এক্সপ্রেশন ব্যবহার করার অন্তর্দৃষ্টি এখানে পাওয়া ডকুমেন্টেশন থেকে উল্লেখ করা হয়েছে MDN ওয়েব ডক্স .
- jQuery UI ডায়ালগ পদ্ধতি ব্যবহার করে মডেল তৈরি এবং এর বিস্তারিত ব্যবহার এখানে অন্বেষণ করা যেতে পারে jQuery UI ডায়ালগ ডকুমেন্টেশন .
- জাভাস্ক্রিপ্টে নির্দিষ্ট ক্লাস এবং ব্যবহারিক উদাহরণ সহ উপাদান গণনার গুরুত্ব যেমন নিবন্ধগুলিতে পর্যালোচনা করা যেতে পারে ফ্রিকোডক্যাম্প জাভাস্ক্রিপ্ট গাইড .