ক্লিক করা এলিমেন্টের ক্লাসটি কীভাবে পাবেন?


228

classক্লিক করা উপাদানের মান কীভাবে পাওয়া যায় তা আমি বুঝতে পারি না ।

আমি যখন কোডটি বেলো ব্যবহার করি তখন আমি প্রতিবার "নোড -205" পাই ।

JQuery:

.find('> ul')
.tabs(
{
    selectedClass: 'active',
    select: function (event, ui) {
        //shows only the first element of list
        $(this).children('li').attr('class');
    },
    cookie: { expires: 0 },
    fx: fx
})

এইচটিএমএল:

<ul class="tabs">
  <li class="node-205"></li>
  <li class="node-150"></li>
  <li class="node-160"></li>
</ul>

আপনার প্রশ্নটি বরং অস্পষ্ট ... আপনি কোনও jquery প্লাগইন ব্যবহার করছেন?
jrharshath

যদি এটি ক্লিক করা আইটেম হয়, আপনি কি ইভেন্টটি আবদ্ধ করতে এবং ক্লাস পেতে ক্লিক () ফাংশনটি ব্যবহার করবেন না? সম্ভবত আমি পুরোপুরি প্রশ্নটি বুঝতে পারি নি ...
ই-সন্তুষ্ট

উত্তর:


396

এখানে একটি দ্রুত jQuery উদাহরণ যা প্রতিটি "লি" ট্যাগে ক্লিক ইভেন্ট যুক্ত করে এবং তারপরে ক্লিক করা উপাদানগুলির জন্য শ্রেণীর বৈশিষ্ট্য পুনরুদ্ধার করে। আশা করি এটা সাহায্য করবে.

$("li").click(function() {
   var myClass = $(this).attr("class");
   alert(myClass);
});

সমানভাবে, আপনাকে jQuery এ বস্তুটি মোড়ানোর দরকার নেই:

$("li").click(function() {
   var myClass = this.className;
   alert(myClass);
});

এবং নতুন ব্রাউজারগুলিতে আপনি শ্রেণীর নামের পুরো তালিকা পেতে পারেন :

$("li").click(function() {
   var myClasses = this.classList;
   alert(myClasses.length + " " + myClasses[0]);
});

আপনি classListপুরানো ব্রাউজারগুলি ব্যবহার করে অনুকরণ করতে পারেনmyClass.split(/\s+/);


1
"শ্রেণি" একটি বৈধ পরিবর্তনশীল নাম নয়।
ফ্রেড বার্গম্যান

1
JQuery দীর্ঘ পথ যেখানে মজার পরিস্থিতিতে একটি। this.className আপনাকে $ (এটি) .attr ("শ্রেণি") এর মতোই দেবে
ডেভিড গিলবার্টসন

উপাদানটির একাধিক শ্রেণীর নাম থাকলে কী হবে?
ধর্মমান

1
নিশ্চিত নয় কেন তবে ২ য় উদাহরণ আমার জন্য শ্রেণীর নাম পুনরুদ্ধার করতে পারে না। তবে 1 ম উদাহরণটি দুর্দান্ত কাজ করে! ধন্যবাদ! আমাকে এক টন সহায়তা করেছে। :)
চিয়ারওয়ারপেইন্ট


28

আমি এই প্রশ্নটি দেখেছি তাই আমি ভেবেছিলাম যে আমি এটি আরও কিছুটা আরও প্রসারিত করব। এটি @ স্টিভফেনটনের ধারণার একটি সম্প্রসারণ। clickপ্রতিটি liউপাদানকে একটি ইভেন্টকে আবদ্ধ করার পরিবর্তে ইভেন্টগুলি নীচে থেকে অর্পণ করা আরও দক্ষ হবে ul

JQuery 1.7 এবং উচ্চতর জন্য

$("ul.tabs").on('click', 'li', function(e) {
   alert($(this).attr("class"));
});

ডকুমেন্টেশন: .on()

JQuery জন্য 1.4.2 - 1.7

$("ul.tabs").delegate('li', 'click', function(e) {
   alert($(this).attr("class"));
});

ডকুমেন্টেশন: .delegate()

JQuery 1.3 - 1.4 এর শেষ অবলম্বন হিসাবে

$("ul.tabs").children('li').live('click', function(e) {
   alert($(this).attr("class"));
});

অথবা

$("ul.tabs > li").live('click', function(e) {
   alert($(this).attr("class"));
});

ডকুমেন্টেশন: .live()


17

এই কৌতুক করতে হবে:

...
select: function(event, ui){ 
   ui.tab.attr('class');
} ,
...

Ui.tab সম্পর্কে আরও তথ্যের জন্য দেখুন http://jqueryui.com/demos/tabs/#Events


এটার মানে কি? আপনি কি আরও ব্যাখ্যা করতে পারেন?

এটি আপনার ব্যবহার করা উচিত ui.item এর পরিবর্তে ui.tab। আমি ভেবেছিলাম এটা ui.item।
jeroen.verhoest

11

প্রদত্ত সমস্ত সমাধান আপনাকে সেই উপাদানটি জানতে বাধ্য করে যা আপনি আগেই ক্লিক করবেন । আপনি ক্লিক করা কোনও উপাদান থেকে ক্লাস পেতে চাইলে আপনি ব্যবহার করতে পারেন:

$(document).on('click', function(e) {
    clicked_id = e.target.id;
    clicked_class = $('#' + e.target.id).attr('class');
    // do stuff with ids and classes 
    })

2
এটি লক্ষ করা উচিত যে কোনও আইডি পাওয়া যদি বিশ্বাসযোগ্য না হয় তবে সর্বদা এর $(e.target)পরিবর্তে কেউ ব্যবহার করতে পারে $('#' + e.target.id)এবং jQuery এখনও এই কেসটি যুক্তিসঙ্গতভাবে পরিচালনা করবে।
ববচাও 87 ই

9
$("div").click(function() {
  var txtClass = $(this).attr("class");
  console.log("Class Name : "+txtClass);
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.