আমি একটি কোড লিখেছি যা মূলত input type=textএই জাতীয় উপাদানগুলি নির্বাচন করে :
$('.sys input[type=text]').each(function () {}
আমি কীভাবে এটি নির্বাচন করতে input[type=text]বা পরিবর্তন করতে পারি select?
উত্তর:
একটি সাধারণ সিএসএস নির্বাচক ব্যবহার:
$('.sys input[type=text], .sys select').each(function() {...})
আপনি যদি পুনরাবৃত্তি পছন্দ না করেন:
$('.sys').find('input[type=text],select').each(function() {...})
বা আরও সংক্ষেপে, contextযুক্তিতে পাস করুন :
$('input[type=text],select', '.sys').each(function() {...})
দ্রষ্টব্য: অভ্যন্তরীণভাবে jQueryউপরেরটি find()সমতুল্যে রূপান্তরিত হবে
অভ্যন্তরীণভাবে, নির্বাচক প্রসঙ্গটি .find () পদ্ধতিতে প্রয়োগ করা হয়, সুতরাং $ ('স্প্যান', এটি) $ (এটি) .ফাইন্ড ('স্প্যান') এর সমতুল্য।
আমি ব্যক্তিগতভাবে সর্বাধিক পঠনযোগ্য হওয়ার প্রথম বিকল্পটি খুঁজে পেয়েছি :), যদিও আপনার গ্রহণ করুন
$কলটির সম্পাদনা যদি আপনার অ্যাপ্লিকেশনটির পক্ষে গুরুত্বপূর্ণ হয় তবে দয়া করে পুরোপুরি jQuery ব্যবহার এড়িয়ে চলুন :)। এই উত্তরটি ওপির প্রশ্নের উত্তর দেওয়ার চেষ্টা করেছিল, যদি এটি কার্য সম্পাদনের প্রশ্ন হত তবে এই উত্তরটি এখানে প্রথম স্থানে থাকবে না। মন্তব্যটির জন্য যাইহোক ধন্যবাদ :), এটির প্রশংসা করুন
$কল নয়, তবে $একটি অ্যাপ্লিকেশনে উপস্থিত সমস্ত কল সম্পর্কে ছিল । আইএমও, যখন আপনার একই জিনিসটি করার বিভিন্ন উপায় রয়েছে, আমি সর্বদা চেষ্টা করি যে এটি আরও ভাল বিসি সম্পাদন করে choose slow performance=== unhappy users। এছাড়াও, আমরা উভয়ই একটি ওপি-র প্রশ্নের একাধিক উত্তর (যেমনটি আপনি করেছিলেন) দিয়ে উত্তর দিতে পারি এবং তাদের প্রত্যেকটির সুবিধাগুলি / অসুবিধাগুলি সরবরাহ করেছি (যেমন আমি মন্তব্যে করেছি)। আইএমও একই ফলাফল প্রদানের সময় কেন সমস্ত উত্তর পৃথক হয় তা লক্ষ্য করা গুরুত্বপূর্ণ। এছাড়াও, আমরা ভ্যানিলা জাভাস্ক্রিপ্ট কোডটি লিখতে পারি যা আস্তে আস্তে সম্পাদন করে JavaScriptperformance
$, আপনার ডিভগুলি বিশেষভাবে ব্যবহার করুন এবং ব্যবহারকারীর document.getElemenById/ElementsByClassNameপরিবর্তে $আপনার নির্বাচককে অনেকগুলি পরীক্ষা / স্ট্রিং পার্সিং করার চেয়ে জিকুয়েরি বিখ্যাত নয় তার পারফরম্যান্ট লাইব্রেরির জন্য। $খুব বেশি কল করার কারণে আমি কোনও অ্যাপ্লিকেশনটি ধীরগতিতে দেখিনি , যদি আপনার কাছে এমন সমস্যা আছে এমন কোনও ওয়েবসাইট থাকে তবে দয়া করে আমাকে দেখান, আমি খুব আগ্রহী :)
$('.sys').children('input[type=text], select').each(function () { ... });
সম্পাদনা: প্রকৃতপক্ষে এই কোডটি শিশু নির্বাচকের সমতুল্য .sys > input[type=text]যদি আপনি বংশধর নির্বাচন করতে চান ( .sys input[type=text]) আপনার @ নিফটিডুডের দেওয়া বিকল্পগুলি ব্যবহার করতে হবে।
অধিক তথ্য:
chilrenপরিবর্তে টাইপ করেছেনchildren
আপনার যদি কোনও ফর্ম বা কোনও টেবিলের পাঠ্য হিসাবে একাধিক ইনপুট থাকে যা আপনাকে পুনরাবৃত্তি করতে হবে, আমি এটি করেছি:
var $list = $("#tableOrForm :input[type='text']");
$list.each(function(){
// Go on with your code.
});
আমি যা করেছি তা ছিল প্রতিটি প্রকারটি "পাঠ্য" টাইপ সেট করা আছে কিনা তা দেখার জন্য আমি যাচাই করেছিলাম, তবে এটি সেই উপাদানটি ধরে ফেলবে এবং এটিকে jQuery তালিকায় সংরক্ষণ করবে। তারপরে, এটি সেই তালিকাটির মাধ্যমে পুনরাবৃত্তি হবে। আপনি বর্তমানের পুনরাবৃত্তির জন্য একটি অস্থায়ী ভেরিয়েবল সেট করতে পারেন:
var $currentItem = $(this);
এটি প্রতিটি লুপের জন্য আপনার বর্তমান পুনরাবৃত্তিতে বর্তমান আইটেমটি সেট করবে। তারপরে আপনি অস্থায়ী ভেরিয়েবলের সাথে যা খুশি করতে পারেন।
আশা করি এটি যে কাউকে সাহায্য করবে!
$('input[type=text],select', '.sys');
লুপিংয়ের জন্য:
$('input[type=text],select', '.sys').each(function() {
// code
});
context formব্যবহার করছে তাইfind form,find formএটিcontext form(একটি কল ফাংশন এড়ানো) এর চেয়ে বেশি দক্ষ । এটি ব্যবহৃত প্রায় সমস্ত নির্বাচকের জন্য বৈধ। তারপরে, আইএমও The এরfind formচেয়ে আরও দক্ষnormal CSS selector, কারণ নির্বাচকের উভয় অংশই মূল নোডের সাথে সম্পর্কিত, যেখানেfind formকেবলমাত্র.sysঅংশটি এটির সাথে সম্পর্কিত হয়, তারপরেinput[type=text],selectএটি উপাদানগুলির একটি আরও ছোট সংখ্যায় কার্যকর করা হয় যাতে এটি আরও দ্রুত হতে পারে (তবে এটি পরীক্ষা করে যাচাই করা দরকার)