link - jquery w3schools




আইডি দ্বারা আইডি দ্বারা এইচটিএমএল নোড নির্বাচন করুন যখন আইডি একটি বিন্দু থাকে? (6)

আমার এইচটিএমএল এই মত লাগছিল:

<td class="controlCell">
    <input class="inputText" id="SearchBag.CompanyName" name="SearchBag.CompanyName" type="text" value="" />
</td>

আমি কিভাবে JQuery এর সাথে # SearchBag.CompanyName নির্বাচন করতে পারি? আমি এটা কাজ করতে পারছি না এবং আমি ভীত যে এটা বিন্দু এটি সব ভঙ্গ করা হয়। বিরক্তিকর জিনিসটি হল যে আমার সমস্ত আইডি পুনঃনামকরণ করা অনেক কাজ হবে, পঠনযোগ্যতার ক্ষতি উল্লেখ না করা।

বিঃদ্রঃ:
লে-আউটিংয়ের জন্য টেবিলগুলি কীভাবে তৈরি করা হয় সে সম্পর্কে কথা বলা শুরু করবেন না। আমি CSS এর মান এবং ত্রুটিগুলির বিষয়ে খুব সচেতন এবং যত তাড়াতাড়ি সম্ভব এটি ব্যবহার করার জন্য কঠোর প্রচেষ্টা করি।


@ টোমালাক মন্তব্য করেছেন:

যেহেতু আইডি নির্বাচকদের অবশ্যই একটি হ্যাশ # দ্বারা পূর্বে হতে হবে, সেখানে কোন দ্বিধা থাকা উচিত নয়

"# Id.class" একটি বৈধ নির্বাচক যার জন্য একটি আইডি এবং একটি আলাদা শ্রেণী উভয়ের সাথে মেলে প্রয়োজন; এটা বৈধ এবং সবসময় সম্পূর্ণ অকার্যকর নয়।

একটি আক্ষরিক 'নির্বাচন করতে সঠিক উপায়।' CSS এ এটি পালাতে হয়: "#id \ .moreid"। এটি কিছু পুরোনো ব্রাউজারে (বিশেষ করে IE5.x) সমস্যা সৃষ্টি করে, কিন্তু সমস্ত আধুনিক ডেস্কটপ ব্রাউজার এটি সমর্থন করে।

একই পদ্ধতিটি jQuery 1.3.2 তে কাজ বলে মনে হচ্ছে, যদিও আমি এটি পুঙ্খানুপুঙ্খ ভাবে পরীক্ষা করে নিচ্ছি; quickExpr এটি বাছাই না, কিন্তু আরো জড়িত নির্বাচক পসার এটা অধিকার পেতে বলে মনে হচ্ছে:

$('#SearchBag\\.CompanyName');

আপনার আইডি একটি পরিবর্তনশীল যখন attr নির্বাচন উপযুক্ত বলে মনে হচ্ছে:

var id_you_want='foo.bar';
$('[id="' + id_you_want + '"]');

আপনি যদি document.getElementById ব্যবহার করেন তবে আপনাকে কিছু পালাতে হবে না:

$(document.getElementById('strange.id[]'))

getElementById অনুমান করে যে ইনপুটটি শুধুমাত্র একটি আইডি বৈশিষ্ট্য, সুতরাং বিন্দুটিকে ক্লাস নির্বাচক হিসাবে ব্যাখ্যা করা হবে না।


একটি বৈকল্পিক এটি হবে:

$("input[id='SearchBag.CompanyName']")

যারা আরো জেনেরিক সমাধান খুঁজছেন তারা, আমি একটি সমাধান খুঁজে পেয়েছি যা কোন বিশেষ অক্ষরের আগে একটি ব্যাকগ্রাউন্ড স্ল্যাশ সন্নিবেশ করায়, এটি একটি বিশেষ অক্ষর ধারণকারী একটি ডিভি থেকে নাম এবং আইডি পুনরুদ্ধার সম্পর্কিত বিষয়গুলিকে সমাধান করে।

"Str1.str2% str3" .replace (/ [^ \ w \ s] / gi, '\\ $ &')

ফেরত "Str1 \\। str2 \\% str3"

এই দরকারী দরকারী আশা করি!


সংক্ষিপ্ত উত্তর : যদি আপনার id = "foo.bar" সাথে একটি উপাদান থাকে তবে আপনি নির্বাচক $("#foo\\.bar") ব্যবহার করতে পারেন $("#foo\\.bar")

দীর্ঘ উত্তর : এটি jquery ডকুমেন্টেশনের অংশ - বিভাগ নির্বাচনকারী যা আপনি এখানে খুঁজে পেতে পারেন: http://api.jquery.com/category/selectors/

আপনার প্রশ্নটি ডকুমেন্টেশনের শুরুতে ঠিক উত্তর দেওয়া হয়েছে:

If you wish to use any of the meta-characters ( such as 
!"#$%&'()*+,./:;[email protected][\]^`{|}~ ) 
as a literal part of a name, you must escape the character with 
two backslashes: \\. For example, if you have an element with id="foo.bar", 
you can use the selector $("#foo\\.bar"). The W3C CSS specification contains 
the complete set of rules regarding valid CSS selectors. Also useful is the 
blog entry by Mathias Bynens on CSS character escape sequences for identifiers.





jquery