jQuery নির্বাচনকারী: আইডি শেষ হয়?


393

এমন selectorকোনও আইডির সাথে উপাদানগুলির জন্য আমি জিজ্ঞাসা করতে পারি যা প্রদত্ত স্ট্রিং দিয়ে শেষ হয়?

বলুন আমার আইডি সহ একটি উপাদান রয়েছে ctl00$ContentBody$txtTitle। আমি কেবল পাস করে এটি কীভাবে পেতে পারি txtTitle?


16
ভাল পুরানো মাস্টার পেজ আইডি ম্যাঙ্গালিং!
ম্যাথু লক

1
ClientIDMode=staticএএসপি.নেট ৪.০ থেকে পরবর্তী সেট করুন এবং এ থেকে মুক্তি পান :)
মুরালি মুরুগেসন

1
ক্লায়েন্টআইডিএমড = স্থিতিশীল যারা পুনরাবৃত্তকারীতে একটি উপাদান আবিষ্কার করার চেষ্টা করছেন তাদের পক্ষে কাজ করবে না!
স্টুয়ার্ট

উত্তর:


629

যদি আপনি উপাদানটির ধরনটি জানেন তবে: (উদাঃ 'উপাদানটিকে' ডিভ 'দিয়ে প্রতিস্থাপন করুন)

$("element[id$='txtTitle']")

যদি আপনি উপাদানটির ধরণটি না জানেন:

$("[id$='txtTitle']")

আরও তথ্য উপলব্ধ



10
আমি এটি 'xt txtTitle' দিয়ে শেষ হতে চাই। এটির সাথে একটি ঝুঁকি যতটা নয় 'টেক্সট' প্রিফিক্স, কিন্তু আপনি যদি নির্বাচক 'NameTextBox', এটা 'NameTextBox', 'FirstNameTextBox', LastNameTextBox ', ইত্যাদি মেলে দিবে
মার্ক

11
একজন বেনামে ব্যবহারকারী কেবল নিম্নলিখিতটি সম্পাদনা করার চেষ্টা করেছিলেন it এটি একটি মন্তব্য হিসাবে যুক্ত করা (যেমনটি এটি বোধ হয় বলে মনে হয়): এটি আইডি txtTitle দিয়ে শেষ হওয়া উপাদানগুলি দেয় না। এখানে ডকস রয়েছে: api.jquery.com/element-selector .. এলিমেন্ট সিলেক্টর getElementsByTagName এর সমতুল্য। এটির সাথে আইডিটির কোনও সম্পর্ক নেই। আপনি যদি আইডির সাথে শেষ হওয়া উপাদানগুলিতে অ্যাক্সেস করতে চান তবে এই সিনট্যাক্স use ("[id" '=' txtTitle '] "") ব্যবহার করুন বা যদি উপাদানটির ধরন জানেন তবে ..eg বিভক্ত .. তারপর এই বাক্য গঠনটি ব্যবহার করুন "(" ডিভ " [আইডি $ = 'txtTitle'] ")
পেক্কা

1
লিঙ্কটি খুব দরকারী ছিল। এটি পৃষ্ঠাটি নিজেই নয়, এটি আমার অতিরিক্ত 2 টি পৃষ্ঠায় ছড়িয়ে গেছে। আমি কীভাবে কোনও শিরোনামের বিভাগগুলি ক্যাপচার করতে শিখেছি, যেমন যদি উত্স উত্সে "মাস্টারপেজ 1_Control0_MyTableName_moreStuff" হিসাবে আইডি অ্যাপিয়ার্ড হয়, আমি আমার << টেবিল আইডি = "মাই টেবিল" এর টেবিলটিতে লক করতে পারি ... using ("আইডি *) ব্যবহার করে = MyTable] ")। এটি ভাবতে আসুন, আমি আইডিটি আরও ভাল পছন্দ করি। হুম ...
লুকাস

এটি উপাদান আবিষ্কার করে document.getElementById("f:fTest:j_idt51:0:inpTest")। এটা না $("[id$='inpTest']")। আইডিতে কোলন অনুমোদিত না হওয়ার কারণে এটি হয় (তবে জেএসএফ এটি যুক্ত করে!)?
পানু হারামো

সিউএস-সিলেক্টরের মতো সিএসএসের সাথে এই নির্বাচককে ব্যবহার করার কোনও উপায় আছে কি?
আলেজান্দ্রো নাভা

250

প্রশ্নের উত্তর হয় $("[id$='txtTitle']"), হিসাবে চিহ্নিত করুন Hurd বললেন , কিন্তু যাঁরা, আমার মত, একটি আইডি যা দিয়ে সব উপাদান খুঁজে পেতে চান তাদের জন্য দিয়ে শুরু হয় একটি প্রদত্ত স্ট্রিং (উদাহরণস্বরূপ txtTitle জন্য), এই (চেষ্টা ডক ):

$("[id^='txtTitle']")

আপনি যদি আইডিটিতে প্রদত্ত স্ট্রিং ( ডক ) ধারণ করে এমন উপাদানগুলি নির্বাচন করতে চান :

$("[id*='txtTitle']")

আপনি উপাদান যা আইডি নির্বাচন করতে চান তাহলে নয় একটি প্রদত্ত স্ট্রিং ( ডক ):

$("[id!='myValue']")

(এটি নির্দিষ্ট উপাদানগুলির সাথে এমন উপাদানগুলির সাথেও মেলে)

আপনি যদি এমন উপাদান নির্বাচন করতে চান যা আইডিতে একটি প্রদত্ত শব্দ থাকে, স্পেস ( ডক ) দ্বারা সীমিত করে :

$("[id~='myValue']")

আপনি যদি এমন উপাদান নির্বাচন করতে চান যা কোনও আইডি কোনও প্রদত্ত স্ট্রিংয়ের সমান বা সেই স্ট্রিং দিয়ে শুরু করে হাইফেন ( ডক ) দ্বারা:

$("[id|='myValue']")

যদি আপনি সেই প্রশ্নের সাথে যুক্ত হন যা আসলে প্রশ্নের উত্তর দেয় যেমন $ ("[id" '=' txtTitle '] ") এবং এটিকে তালিকায় প্রথমে রাখে আমি আপনার উত্তরটি দিয়েছি। আমি এই মুহুর্তে পারছি না কারণ আপনি প্রশ্নের উত্তর দেন না
অ্যালান ম্যাকডোনাল্ড

2
@ অ্যালান ম্যাকডোনাল্ড আমি নিশ্চিত যে এটি যুক্ত করা ঠিক নয়। আমি দর্শকদের জন্য আরও তথ্য যুক্ত করার জন্য একটি উত্তর গৃহীত হওয়ার পরে দীর্ঘক্ষণ প্রশ্নের উত্তর দিয়েছি। আমি আশা করি যে লোকেরা আমার উত্তরটিকে সমর্থন করে তারা প্রশ্নের উত্তরটিকেও উচ্চতর করে দেয়।
রোমেন গাইডদক্স

1
@ রোমাইনগুইডক্স মোটামুটিভাবে এটি আপনার কল, তবে আমি যে উত্তরগুলি জিজ্ঞাসা করা হয়েছে তার সমাধান দেয় না এমন উত্তরগুলিকে আমি অগ্রাহ্য করি না কারণ নবাগত শিশুরা যদি ওপেনের মতো একই সমস্যার মুখোমুখি হয় তবে তারা যদি পৃষ্ঠায় আসে এবং কোনও সমস্যা আছে তবে ভোট দেওয়া উত্তর যা এমনকি প্রশ্নের উত্তর দেয় না। আপনি যদি প্রশ্নের উত্তর দেওয়ার জন্য এটি পরিবর্তন করে থাকেন তবে আমি গৃহীত উত্তরটির পরিবর্তে আপনার উত্তরটিকে উজ্জীবিত করব কারণ এটি একটি পরিপূর্ণ এবং আরও দরকারী উত্তর। ইথার বা এটি প্রশ্নের উত্তর না দিয়ে গ্রহণযোগ্য উত্তর সম্পর্কে একটি মন্তব্য হওয়া উচিত ছিল।
অ্যালান ম্যাকডোনাল্ড

1
@ অ্যালান ম্যাকডোনাল্ড হয়ে গেছে, আপনি আমাকে বিশ্বাস করেছেন।
রোমেন গাইডদক্স

33

চেষ্টা

$("element[id$='txtTitle']");

সম্পাদনা: 4 সেকেন্ড দেরি: পি



13

আন্ডারস্কোর বা the আপনি যে শব্দটির সন্ধান করছেন তাতে যুক্ত হওয়া আরও নিরাপদ তাই এটি একই আইডিতে শেষ হওয়া অন্যান্য উপাদানগুলির সাথে মিলের সম্ভাবনা কম less

$("element[id$=_txtTitle]")

(যেখানে উপাদানটি এমন উপাদানগুলির ধরণ যেখানে আপনি সন্ধানের চেষ্টা করছেন - যেমন div, inputইত্যাদি etc.

(দ্রষ্টব্য, আপনি পরামর্শ দিচ্ছেন যে আপনার আইডিগুলিতে সেগুলিতে $ চিহ্ন রয়েছে but তবে আমার মনে হয়। নেট 2 এখন পরিবর্তে আইডিতে আন্ডারস্কোর ব্যবহার করে, তাই আমার উদাহরণটি আন্ডারস্কোর ব্যবহার করে)।


1
হ্যাঁ তুমিই ঠিক. আইডি সম্পত্তি আন্ডারস্কোর ব্যবহার করে। নাম সম্পত্তি ডলার চিহ্ন ব্যবহার করে।
জোশ স্টোডোলা

3

একটি উদাহরণ: <a>_ সম্পাদনায় শেষ হওয়া আইডি সহ সমস্ত গুলি নির্বাচন করতে :

jQuery("a[id$=_edit]")

অথবা

jQuery("a[id$='_edit']")

3

যেহেতু এটি এএসপি.এনইটি, আপনি টেক্সটটাইটের উত্পন্ন ক্লায়েন্টআইডিটি প্রিন্ট করতে কেবল এএসপি <% =%> ট্যাগটি ব্যবহার করতে পারেন:

$('<%= txtTitle.ClientID %>')

এর ফলে ...

$('ctl00$ContentBody$txtTitle')

... পৃষ্ঠাটি যখন রেন্ডার করা হয়।

দ্রষ্টব্য: ভিজ্যুয়াল স্টুডিওতে, ইন্টেলিসেন্স জাভাস্ক্রিপ্টে এএসপি ট্যাগ লাগানোর জন্য আপনাকে চিত্কার করবে। ফলাফল বৈধ জাভাস্ক্রিপ্ট হওয়ায় আপনি এটিকে উপেক্ষা করতে পারেন।


4
ওপি আছে না 'ctl00$ContentBody$txtTitle', তিনি হয়েছে 'txtTitle', এবং আপনি নেতৃস্থানীয় অনুপস্থিত #একটি আইডি মেলে। তবে ওপি ইতিমধ্যে অনুরূপ পরামর্শ প্রত্যাখ্যান করেছে (মুছে ফেলা হওয়ার পরে): আমি যদি আমার জাভাস্ক্রিপ্ট সরাসরি মার্কআপে না রাখি তবে এটি কাজ করবে না, যা সাংগঠনিক দুঃস্বপ্ন। আচরণগত বিচ্ছেদ এই প্রকল্পের জন্য অত্যন্ত গুরুত্বপূর্ণ।
মার্টিজন পিটারস

1

এটা চেষ্টা কর:

<asp:HiddenField ID="0858674_h" Value="0" runat="server" />

var test = $(this).find('[id*="_h"').val();

0

একটি আইফ্রেমে আইডিটি খুঁজে পেতে অনেক আইফ্রেমে থাকা পৃষ্ঠার মধ্যে "আইফ্রেম" দিয়ে শেষ হয়।

jQuery(document).ready(function (){     
                  jQuery("iframe").each(function(){                     
                    if( jQuery(this).attr('id').match(/_iFrame/) ) {
                            alert(jQuery(this).attr('id'));

                     }                   
                  });     
         });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.