JQuery দিয়ে কোনও উপাদানটির আইডি পরিবর্তন করা


302

আমার jQuery ব্যবহার করে কোনও উপাদানের আইডি পরিবর্তন করতে হবে।

স্পষ্টত এগুলি কাজ করে না:

jQuery(this).prev("li").attr("id")="newid"
jQuery(this).prev("li")="newid"

আমি খুঁজে পেয়েছি যে আমি নিম্নলিখিত কোডের সাথে এটি ঘটতে পারি:

jQuery(this).prev("li")show(function() {
    this.id="newid";
});

তবে সেটা আমার কাছে ঠিক মনে হচ্ছে না। আরও ভাল উপায় আছে, না? এছাড়াও, যদি না থাকে তবে শো / লুকানোর বা অন্য প্রভাবগুলির পরিবর্তে আমি আর কোন পদ্ধতি ব্যবহার করতে পারি? স্পষ্টতই আমি প্রতিবার উপাদানটি প্রদর্শন / লুকিয়ে রাখতে বা প্রভাবিত করতে চাই না, কেবল তার আইডি পরিবর্তন করতে।

(হ্যাঁ, আমি jQuery নবাগত।

সম্পাদনা
আমি এই ক্ষেত্রে ক্লাস ব্যবহার করতে পারি না, আমার অবশ্যই আইডি ব্যবহার করতে হবে।


5
জাভাস্ক্রিপ্টে, আপনি কোনও ভেরিয়েবল ( foo = 1), কোনও অবজেক্টের সদস্য ( foo.bar = 2বা foo['bar'] = 2) বা অ্যারে সাবস্ক্রিপ্ট ( foo[0] = 3) বরাদ্দ করতে পারেন তবে কোনও এক্সপ্রেশনকে বরাদ্দ করতে পারেন, যেমন একটি অপারেটরের ফলাফল ( (x + b) = 5) বা ফাংশন কলের ফলাফল ( foo() = 1, foo(x).bar(y) = 7) কোনও অর্থবোধ করে না, তাই এটি jQuery বা অন্য কোনও জাভাস্ক্রিপ্ট লাইব্রেরিতে জিনিসগুলি যেভাবে কাজ করে তা অবশ্যই হয় না।
রাকস্লাইস

উত্তর:


520

আপনার বাক্য গঠনটি ভুল, আপনার দ্বিতীয় প্যারামিটার হিসাবে মানটি পাস করা উচিত:

jQuery(this).prev("li").attr("id","newId");

4
আমার মনে হয় নতুন আইডির উদ্ধৃতি হওয়া উচিত
জে কর্পেট

5
আপনার কি ডিওএম থেকে উপাদানটি আলাদা করতে এবং এটির জায়গায় নতুন আইডি দিয়ে কোনও নতুন উপাদান দিয়ে প্রতিস্থাপনের দরকার নেই? ডোম ভাঙ্গা এড়াতে ...?
cllpse

15
jQuery এর যত্ন নেয়, রোস্টেরোনাসিড।
ম্যাকফেরিনএম

15
ডাবল চেকিং আইডি পুনরায় নিয়োগের জন্য এখানে পৌঁছেছেন - এটি এখন .prop( ... )পরিবর্তে করা উচিত .attr( ... )?
কার্ল

2
@ কার্ল সর্বশেষ জ্যাকোরি ডকস এবং উদাহরণ অনুসারে idএখনও ব্যবহার করে সেট করা উচিতattr(...)
জোব্রোকহাউস

71

একটি পছন্দসই বিকল্পটি এর মতো .attrব্যবহার করা .prop:

$(this).prev('li').prop('id', 'newId');

.attrউপাদানটির বৈশিষ্ট্যটি পুনরুদ্ধার করে উপাদানটির বৈশিষ্ট্য .propপুনরুদ্ধার করে যে বৈশিষ্ট্যটি রেফারেন্স করে (যেমন আপনি আসলে যা সংশোধন করতে চান)


4
.attr হ্রাস করা হয়েছে - এটি করার সঠিক উপায়।
পয়েন্টলেসস্পাইক

7
কোথা থেকে এই তথ্য আসে? api.jquery.com/attr থামিয়ে দেওয়া সম্পর্কে কিছুই বলছে ...
Sergej

এটি অবচয় করা হয়নি। " JQuery এর 1.6 এর হিসাবে , .prop()পদ্ধতি স্পষ্টভাবে, সম্পত্তি মান পুনরুদ্ধার করতে যখন একটি উপায় প্রদান করে .attr()আহরণ বৈশিষ্ট্যাবলী।"
আলোকসভা

@ ইলিউমিনেটর আমি সেই অনুযায়ী আমার উত্তর সংশোধন করেছি। ধন্যবাদ।
জেরেমি মরিটজ

45

আপনি যা বলতে চাইছেন তা হ'ল:

jQuery(this).prev("li").attr("id", "newID");

এটি নতুন আইডিতে আইডি সেট করবে



7

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


3
উত্তরাধিকার ব্যবস্থার আনন্দ - আমি তখন আপনার ব্যথা বুঝতে পারি। ইরানের উত্তর অবশ্যই সবচেয়ে ভাল।
টিম নাইট

5
আসলে আপনি যদি এইচটিএমএল-এ লুকানো-টেমপ্লেট ব্যবহার করে এবং পরে জকিউরি ব্যবহার করে ক্লোনিং করে ডিওএম তৈরি করে থাকেন তবে আইডিটি সেট করা একটি দরকারী এবং সার্থক জিনিস।
স্টিভ নাইট

5
$("#LeNomDeMaBaliseID").prop('id', 'LeNouveauNomDeMaBaliseID');

1
এই সমাধানটি ইতিমধ্যে এখানে
ক্রিশ্চিক

1
দয়া করে কেবল কোড-উত্তর উত্তর পোস্ট করবেন না - সর্বদা উত্তরে আপনার কোডে একটি ব্যাখ্যা যুক্ত করুন।
ড্যানিয়েল ডব্লিউ।

2
<script>
       $(document).ready(function () {
           $('select').attr("id", "newId"); //direct descendant of a
       });
</script>

এটি সমস্ত উদ্দেশ্যে করতে পারে। আপনার বডি ক্লোজিং ট্যাগের আগে কেবল যুক্ত করুন এবং Jquery.min.js যুক্ত করার জন্য না


0

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

$("#myId").on("click", function() {});

যদি আইডিটি এখন # মাইআইডি 123 এ পরিবর্তিত হয় তবে উপরে সংযুক্ত ফাংশনটি আমার অভিজ্ঞতা থেকে সঠিকভাবে কাজ করবে না।

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