জ্যাকুরি সিলেক্টর ইনপুট [টাইপ করুন = পাঠ্য] ')


99

আমি একটি কোড লিখেছি যা মূলত input type=textএই জাতীয় উপাদানগুলি নির্বাচন করে :

$('.sys input[type=text]').each(function () {}

আমি কীভাবে এটি নির্বাচন করতে input[type=text]বা পরিবর্তন করতে পারি select?

উত্তর:


178

একটি সাধারণ সিএসএস নির্বাচক ব্যবহার:

$('.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()সমতুল্যে রূপান্তরিত হবে

http://api.jquery.com/jQuery/

অভ্যন্তরীণভাবে, নির্বাচক প্রসঙ্গটি .find () পদ্ধতিতে প্রয়োগ করা হয়, সুতরাং $ ('স্প্যান', এটি) $ (এটি) .ফাইন্ড ('স্প্যান') এর সমতুল্য।

আমি ব্যক্তিগতভাবে সর্বাধিক পঠনযোগ্য হওয়ার প্রথম বিকল্পটি খুঁজে পেয়েছি :), যদিও আপনার গ্রহণ করুন


4
যেহেতু এটি context formব্যবহার করছে তাই find form, find formএটি context form(একটি কল ফাংশন এড়ানো) এর চেয়ে বেশি দক্ষ । এটি ব্যবহৃত প্রায় সমস্ত নির্বাচকের জন্য বৈধ। তারপরে, আইএমও The এর find formচেয়ে আরও দক্ষ normal CSS selector, কারণ নির্বাচকের উভয় অংশই মূল নোডের সাথে সম্পর্কিত, যেখানে find formকেবলমাত্র .sysঅংশটি এটির সাথে সম্পর্কিত হয়, তারপরে input[type=text],selectএটি উপাদানগুলির একটি আরও ছোট সংখ্যায় কার্যকর করা হয় যাতে এটি আরও দ্রুত হতে পারে (তবে এটি পরীক্ষা করে যাচাই করা দরকার)

4
@ পোমাহ আমি দেখতে পাচ্ছি আপনি কোথা থেকে আসছেন তবে কোনও $কলটির সম্পাদনা যদি আপনার অ্যাপ্লিকেশনটির পক্ষে গুরুত্বপূর্ণ হয় তবে দয়া করে পুরোপুরি jQuery ব্যবহার এড়িয়ে চলুন :)। এই উত্তরটি ওপির প্রশ্নের উত্তর দেওয়ার চেষ্টা করেছিল, যদি এটি কার্য সম্পাদনের প্রশ্ন হত তবে এই উত্তরটি এখানে প্রথম স্থানে থাকবে না। মন্তব্যটির জন্য যাইহোক ধন্যবাদ :), এটির প্রশংসা করুন
আন্দ্রেয়াস ওয়ং

4
আমার মন্তব্য পারফেক্ট ওয়ান $কল নয়, তবে $একটি অ্যাপ্লিকেশনে উপস্থিত সমস্ত কল সম্পর্কে ছিল । আইএমও, যখন আপনার একই জিনিসটি করার বিভিন্ন উপায় রয়েছে, আমি সর্বদা চেষ্টা করি যে এটি আরও ভাল বিসি সম্পাদন করে choose slow performance=== unhappy users। এছাড়াও, আমরা উভয়ই একটি ওপি-র প্রশ্নের একাধিক উত্তর (যেমনটি আপনি করেছিলেন) দিয়ে উত্তর দিতে পারি এবং তাদের প্রত্যেকটির সুবিধাগুলি / অসুবিধাগুলি সরবরাহ করেছি (যেমন আমি মন্তব্যে করেছি)। আইএমও একই ফলাফল প্রদানের সময় কেন সমস্ত উত্তর পৃথক হয় তা লক্ষ্য করা গুরুত্বপূর্ণ। এছাড়াও, আমরা ভ্যানিলা জাভাস্ক্রিপ্ট কোডটি লিখতে পারি যা আস্তে আস্তে সম্পাদন করে JavaScriptperformance
:!

4
@ পোমঃ পারফরম্যান্স সম্পর্কে আমার বক্তব্যটি ছিল, আপনি যদি সত্যই পারফরম্যান্সের বিষয়ে যত্নশীল হন, jQuery এর ব্যবহার করবেন না $, আপনার ডিভগুলি বিশেষভাবে ব্যবহার করুন এবং ব্যবহারকারীর document.getElemenById/ElementsByClassNameপরিবর্তে $আপনার নির্বাচককে অনেকগুলি পরীক্ষা / স্ট্রিং পার্সিং করার চেয়ে জিকুয়েরি বিখ্যাত নয় তার পারফরম্যান্ট লাইব্রেরির জন্য। $খুব বেশি কল করার কারণে আমি কোনও অ্যাপ্লিকেশনটি ধীরগতিতে দেখিনি , যদি আপনার কাছে এমন সমস্যা আছে এমন কোনও ওয়েবসাইট থাকে তবে দয়া করে আমাকে দেখান, আমি খুব আগ্রহী :)
আন্দ্রেস ওয়াং

4
@ পোমহ হ্যাঁ, আমি জেএসের আপনার বক্তব্যটির সাথে আন্তরিকভাবে একমত! = পারফরম্যান্স :), দিন শেষে, এটি এখনও আমাদের কাছে সিদ্ধহস্ত, প্রোগ্রামাররা আসলে বোধগম্য কোড লিখতে। সংক্ষিপ্ত আলোচনার জন্য ধন্যবাদ, আপনার দিনটি শুভ হোক :)
Andreas Wong

7
$('.sys').children('input[type=text], select').each(function () { ... });

সম্পাদনা: প্রকৃতপক্ষে এই কোডটি শিশু নির্বাচকের সমতুল্য .sys > input[type=text]যদি আপনি বংশধর নির্বাচন করতে চান ( .sys input[type=text]) আপনার @ নিফটিডুডের দেওয়া বিকল্পগুলি ব্যবহার করতে হবে।

অধিক তথ্য:


আপনি chilrenপরিবর্তে টাইপ করেছেনchildren
পোমেহ

5

আপনার যদি কোনও ফর্ম বা কোনও টেবিলের পাঠ্য হিসাবে একাধিক ইনপুট থাকে যা আপনাকে পুনরাবৃত্তি করতে হবে, আমি এটি করেছি:

var $list = $("#tableOrForm :input[type='text']");

$list.each(function(){
    // Go on with your code.
});

আমি যা করেছি তা ছিল প্রতিটি প্রকারটি "পাঠ্য" টাইপ সেট করা আছে কিনা তা দেখার জন্য আমি যাচাই করেছিলাম, তবে এটি সেই উপাদানটি ধরে ফেলবে এবং এটিকে jQuery তালিকায় সংরক্ষণ করবে। তারপরে, এটি সেই তালিকাটির মাধ্যমে পুনরাবৃত্তি হবে। আপনি বর্তমানের পুনরাবৃত্তির জন্য একটি অস্থায়ী ভেরিয়েবল সেট করতে পারেন:

var $currentItem = $(this);

এটি প্রতিটি লুপের জন্য আপনার বর্তমান পুনরাবৃত্তিতে বর্তমান আইটেমটি সেট করবে। তারপরে আপনি অস্থায়ী ভেরিয়েবলের সাথে যা খুশি করতে পারেন।

আশা করি এটি যে কাউকে সাহায্য করবে!


3
$('input[type=text],select', '.sys');

লুপিংয়ের জন্য:

$('input[type=text],select', '.sys').each(function() {
   // code
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.