उस तत्व की श्रेणी प्राप्त करना जिसने JQuery का उपयोग करके किसी घटना को निकाल दिया


82

जब भी क्लिक ईवेंट को निकाल दिया जाता है, तो कक्षा प्राप्त करने के लिए कुछ होता है। नीचे के रूप में मेरा कोड, यह केवल आईडी के लिए काम करता है लेकिन कक्षा के लिए नहीं।

$(document).ready(function() {
  $("a").click(function(event) {
    alert(event.target.id + " and " + event.target.class);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>

<body>
  <a href="#" id="kana1" class="konbo">click me 1</a>
  <a href="#" id="kana2" class="kinta">click me 2</a>
</body>

</html>

यहाँ jsfiddle कोड


11
वर्ग ECMAScript में एक आरक्षित कार्य है, इसलिए वर्ग गुण को classNameDOM प्रॉपर्टी में मैप किया जाता है । का उपयोग करें event.target.className
RobG

जवाबों:


138

प्रयत्न:

$(document).ready(function() {
    $("a").click(function(event) {
       alert(event.target.id+" and "+$(event.target).attr('class'));
    });
});

110

इसमें पूर्ण वर्ग (जो कि एक से अधिक स्थान वाले वर्ग हो सकते हैं, यदि तत्व में एक से अधिक वर्ग हों)। आपके कोड में यह "konbo" या "kinta" होगा:

event.target.className

आप नाम से कक्षाओं के लिए जाँच करने के लिए jQuery का उपयोग कर सकते हैं:

$(event.target).hasClass('konbo');

और जोड़ सकते हैं या उन लोगों के साथ दूर करने के लिए addClass और removeClass


21

आपको नीचे के एरे में सारी क्लास मिल जाएगी

event.target.classList

मुझे यह जवाब @ broesch की तुलना में अधिक मददगार लगता है। इसकी निर्भरता कम होती है और यह इस बिंदु पर अधिक स्वाभाविक लगता है।
कॉक्स

3

$(document).ready(function() {
  $("a").click(function(event) {
    var myClass = $(this).attr("class");
    var myId = $(this).attr('id');
    alert(myClass + " " + myId);
  });
})
<html>

<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</head>

<body>
  <a href="#" id="kana1" class="konbo">click me 1</a>
  <a href="#" id="kana2" class="kinta">click me 2</a>
</body>

</html>

यह मेरे लिए काम करता है। JQuery में कोई event.target.class फ़ंक्शन नहीं है।


किसी कारण से मुझे घटना का उपयोग करना है, वैसे भी उत्तर के लिए धन्यवाद। ब्रोच ने उत्तर दिया है कि मुझे क्या चाहिए।
रेडबॉक्स


0

सावधान जैसा targetकि सभी ब्राउज़रों के साथ काम नहीं कर सकता है, यह क्रोम के साथ अच्छी तरह से काम करता है, लेकिन मैं फ़ायरफ़ॉक्स (या आईई / एज, याद नहीं कर सकता) को थोड़ा अलग करता हूं और srcElement का उपयोग करता है। मैं आमतौर पर कुछ ऐसा करता हूं

var t = ev.srcElement || ev.target;

इस प्रकार से अग्रणी है

$(document).ready(function() {
    $("a").click(function(ev) {
        // get target depending on what API's in use
        var t = ev.srcElement || ev.target;

        alert(t.id+" and "+$(t).attr('class'));
    });
});

अच्छा जवाब के लिए Thx!


targetफ़ायरफ़ॉक्स के साथ काम करता है, IE / Edge की आवश्यकता होगीsrcElement
हसन बेग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.