আমি কীভাবে jQuery অবজেক্ট থেকে নির্বাচক পেতে পারি


112
$("*").click(function(){
    $(this); // how can I get selector from $(this) ?
});

এর থেকে নির্বাচক পাওয়ার$(this) সহজ উপায় কি আছে ? তার নির্বাচকের দ্বারা কোনও উপাদান নির্বাচন করার উপায় রয়েছে, তবে উপাদান থেকে নির্বাচককে পাওয়ার কী ?


শুধু কৌতূহল কেন এটি দরকারী হবে? আপনি এখানে (শব্দার্থগতভাবে) যা বলছেন তা প্রতিটি উপাদানকে $ (এটি) হিসাবে উল্লেখ করা হয় ... উপাদানটি নিজেই $ (এটি) সুতরাং নির্বাচকটির প্রয়োজন হয় না। আপনি অবজেক্টটি পেয়েছেন ...
বেনাব্লাবাস্টার

1
আপনি কি বুঝতে পেরেছেন যে নেস্টেড উপাদানগুলির সাথে ক্লিক করা একের বেশি ফিরবে? শরীরে বিভাজন ইত্যাদি ইত্যাদি আমি নাকি এই মুহুর্তে খুব ক্লান্ত হয়ে পড়েছি?
মার্ক শুলথিস

2
আপনি কী অর্জন করতে চাইছেন তার 'শেষ লক্ষ্য' বর্ণনা করতে পারলে এটি সহায়ক হবে। আপনি সম্ভবত আরও ভাল সাহায্য পেতে পারেন।
জেসেগাভিন

3
একটি উপাদান বিভিন্ন উপায়ে হাজার হাজারে নির্বাচন করা যেতে পারে । এছাড়াও, নির্বাচক! == পথ। আপনি এই তথ্যটি দিয়ে কী করবেন বলে আশা করেন?
মিথ্যা

2
আপনি যদি ইতিমধ্যে কোনও জিকিউরি উপাদান খুঁজে পেয়েছেন এবং প্লাগিন / মডিউল / সাব্রোটিন ব্যবহার করছেন তবে এটির জন্য নির্বাচকের প্রয়োজন (সম্ভবত আপনার নিয়ন্ত্রণের বাইরে) প্রয়োজন হলে এটি কার্যকর হতে পারে।
অ্যান্ডি

উত্তর:


57

ঠিক আছে, সুতরাং উপরের মন্তব্যে প্রশ্নকারী জিজ্ঞাসাবাদী Fidilipবলেছেন যে সে / সে আসলে কী তা হ'ল বর্তমান উপাদানটির পথ অর্জন করা।

এখানে একটি স্ক্রিপ্ট যা DOM পূর্বপুরুষের গাছটিকে "আরোহণ" করবে এবং তারপরে ক্লিক করা আইটেমের কোনও idবা classবৈশিষ্ট্য সহ মোটামুটি নির্দিষ্ট নির্বাচক তৈরি করবে।

এটি jsFizz এ কাজ করে দেখুন: http://jsfiddle.net/Jkj2n/209/

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
    $(function() {
        $("*").on("click", function(e) {
          e.preventDefault();
          var selector = $(this)
            .parents()
            .map(function() { return this.tagName; })
            .get()
            .reverse()
            .concat([this.nodeName])
            .join(">");

          var id = $(this).attr("id");
          if (id) { 
            selector += "#"+ id;
          }

          var classNames = $(this).attr("class");
          if (classNames) {
            selector += "." + $.trim(classNames).replace(/\s/gi, ".");
          }

          alert(selector);
      });
    });
    </script>
</head>
<body>
<h1><span>I love</span> jQuery</h1>
<div>
  <p>It's the <strong>BEST THING</strong> ever</p>
  <button id="myButton">Button test</button>
</div>
<ul>
  <li>Item one
    <ul>
      <li id="sub2" >Sub one</li>
      <li id="sub2" class="subitem otherclass">Sub two</li>
    </ul>
  </li>
</ul>
</body>
</html>

উদাহরণস্বরূপ, আপনি যদি নীচের এইচটিএমএলে ২ য় তালিকার নেস্টেড তালিকা আইটেমটি ক্লিক করেন তবে আপনি নীচের ফলাফল পাবেন:

HTML>BODY>UL>LI>UL>LI#sub2.subitem.otherclass


2
ধন্যবাদ! আমি যোগদানের ক্ষেত্রে একটি পরিবর্তন করে আপনার কোড ব্যবহার করব ... join(" > ");, আমাকে তাত্ক্ষণিক শিশু এবং তাই আরও কঠোর পথ পাবে।
অযৌক্তিক

উদ্ভট ... আমি আমার ক্রোম এক্সটেনশনের জন্য এটি ব্যবহার করব। কেবল একটি জিনিস,
কোনও

শুভ কল আমি আমার উদাহরণটি আপডেট করেছি, এবং একটি আইপি বিবৃতিও সরিয়েছি।
জেসেগাভিন

উপরের কোড খণ্ডটি এসভিজি অবজেক্টের জন্য ক্লাস ফেরায় না। এখানে একটি জেএসফিডাল যা এসভিজির জন্য কাজ করে: http://jsfiddle.net/mikemsq/vbykja4x/7/
মাইক্যামস্কিউ

32

:: সতর্কতা ::
.নির্বাচককে 1.9 সংস্করণ হিসাবে অবহিত করা হয়েছে, 1.9 হিসাবে সরানো হয়েছে

গতকাল তার কোডটি খনন করার সময় jQuery অবজেক্টের একটি নির্বাচক সম্পত্তি রয়েছে। এটি ডক্সে সংজ্ঞায়িত করা হয়েছে কিনা তা কতটা নির্ভরযোগ্য তা জানেন না (ভবিষ্যতের প্রমাণের জন্য)। কিন্তু এটি কাজ করে!

$('*').selector // returns *

সম্পাদনা : আপনি যদি ইভেন্টটির অভ্যন্তরে নির্বাচককে খুঁজে পান তবে সেই তথ্যটি আদর্শভাবেই ইভেন্টের অংশ হওয়া উচিত এবং উপাদান হিসাবে নয় কারণ কোনও উপাদানটিতে বিভিন্ন নির্বাচকদের মাধ্যমে একাধিক ক্লিক ইভেন্ট নির্ধারিত হতে পারে। একটি সমাধান প্রায় করার জন্য একটি মোড়কের ব্যবহার করতে হবে bind(), click()ইত্যাদি এটা সরাসরি যোগ করার পরিবর্তে ঘটনা যোগ করতে।

jQuery.fn.addEvent = function(type, handler) {
    this.bind(type, {'selector': this.selector}, handler);
};

নির্বাচিত কোনও বস্তুর সম্পত্তি হিসাবে সম্পত্তি হিসাবে পাস করা হচ্ছে selector। এটি হিসাবে অ্যাক্সেস করুন event.data.selector

আসুন এটি কয়েকটি মার্কআপে চেষ্টা করে দেখুন ( http://jsfiddle.net/DFh7z/ ):

<p class='info'>some text and <a>a link</a></p>​

$('p a').addEvent('click', function(event) {
    alert(event.data.selector); // p a
});

দাবি অস্বীকার : মনে রাখবেন যে live()ইভেন্টগুলির মতোই , ডিওএম ট্র্যাভারসাল পদ্ধতি ব্যবহার করা হলে নির্বাচক সম্পত্তি অবৈধ হতে পারে।

<div><a>a link</a></div>

নীচের কোডটি কার্যকর করবে না, যেমন liveনির্বাচক সম্পত্তির উপর নির্ভর করে যা এই ক্ষেত্রে a.parent()- একটি অবৈধ নির্বাচনকারী।

$('a').parent().live(function() { alert('something'); });

আমাদের addEventপদ্ধতিটি জ্বলে উঠবে, তবে আপনিও ভুল নির্বাচক দেখতে পাবেন - a.parent()


আমি মনে করি jquery =) থেকে আমরা সবচেয়ে ভাল যা অর্জন করি is পরে আমি পুরো সমাধানটি খুঁজে পাব। যাইহোক এটি সত্যিই সুবিধাজনক হতে পারে, THX! =)
ফিদিলিপ

@ মারকোডুমিক: অবশ্যই হতাশ হয়ে গেছেন। লিঙ্কটি এখন মারা গেছে এবং এটি অনুসরণ করে আমাদের কেবলমাত্র এটি বলে:No Such jQuery Method Exists
হিপ্পিট্রেইল

12
@ লিভিটিকন আপনি কি সত্যিই তিন বছরের পুরানো উত্তরটিকে কমিয়ে দিচ্ছেন কারণ এখন তা অবনমিত হয়েছে ?! আপনার সত্যই উত্তরটি সম্পাদনা করা উচিত এবং একটি সতর্কতা দেওয়া উচিত
এ। ওল্ফ

22

@ ড্রজাউসের সহযোগিতায় আমরা নীচের জিকুয়েরি প্লাগইন নিয়ে এসেছি।

jQuery.getSelector

!(function ($, undefined) {
    /// adapted http://jsfiddle.net/drzaus/Hgjfh/5/

    var get_selector = function (element) {
        var pieces = [];

        for (; element && element.tagName !== undefined; element = element.parentNode) {
            if (element.className) {
                var classes = element.className.split(' ');
                for (var i in classes) {
                    if (classes.hasOwnProperty(i) && classes[i]) {
                        pieces.unshift(classes[i]);
                        pieces.unshift('.');
                    }
                }
            }
            if (element.id && !/\s/.test(element.id)) {
                pieces.unshift(element.id);
                pieces.unshift('#');
            }
            pieces.unshift(element.tagName);
            pieces.unshift(' > ');
        }

        return pieces.slice(1).join('');
    };

    $.fn.getSelector = function (only_one) {
        if (true === only_one) {
            return get_selector(this[0]);
        } else {
            return $.map(this, function (el) {
                return get_selector(el);
            });
        }
    };

})(window.jQuery);

জাভাস্ক্রিপ্ট Minified

// http://stackoverflow.com/questions/2420970/how-can-i-get-selector-from-jquery-object/15623322#15623322
!function(e,t){var n=function(e){var n=[];for(;e&&e.tagName!==t;e=e.parentNode){if(e.className){var r=e.className.split(" ");for(var i in r){if(r.hasOwnProperty(i)&&r[i]){n.unshift(r[i]);n.unshift(".")}}}if(e.id&&!/\s/.test(e.id)){n.unshift(e.id);n.unshift("#")}n.unshift(e.tagName);n.unshift(" > ")}return n.slice(1).join("")};e.fn.getSelector=function(t){if(true===t){return n(this[0])}else{return e.map(this,function(e){return n(e)})}}}(window.jQuery)

ব্যবহার এবং গোটচ

<html>
    <head>...</head>
    <body>
        <div id="sidebar">
            <ul>
                <li>
                    <a href="/" id="home">Home</a>
                </li>
            </ul>
        </div>
        <div id="main">
            <h1 id="title">Welcome</h1>
        </div>

        <script type="text/javascript">

            // Simple use case
            $('#main').getSelector();           // => 'HTML > BODY > DIV#main'

            // If there are multiple matches then an array will be returned
            $('body > div').getSelector();      // => ['HTML > BODY > DIV#main', 'HTML > BODY > DIV#sidebar']

            // Passing true to the method will cause it to return the selector for the first match
            $('body > div').getSelector(true);  // => 'HTML > BODY > DIV#main'

        </script>
    </body>
</html>

ফিডল ডাব্লু / কুইনাইট পরীক্ষা

http://jsfiddle.net/CALY5/5/


আপনি কোথায় যাচ্ছেন তা আমি পছন্দ করেছি, তাই আমি কিছু সংশোধন / পরিবর্তন করেছি : * jQuery প্লাগইন jQuery ইউটিলিটি $.map* veragesচ্ছিক ডিলিমিটার (অদ্ভুত খালি ট্যাগনামগুলি স্ট্রিপ করা দরকার) * নিরাপদ থাকার জন্য আপনার hasOwnPropertyকোনও foreachলুপ পরীক্ষা করার দরকার নেই ?
ড্রজাউস

মন্তব্যের জন্য ধন্যবাদ, আমি এই সাপ্তাহিক ছুটির দিনে একটি উপযুক্ত টেস্ট স্যুট সেট করব এবং আপনার পরামর্শগুলিকে অন্তর্ভুক্ত করার জন্য কাজ করব।
উইল

1
@ ড্রজাউস আমি প্রশ্নটি আপডেট করেছি। আমি সিদ্ধান্ত নিয়েছি যে আপনি যে কাস্টম ডিলিমিটারটি যুক্ত করেছেন সেগুলি ছাড়াই যেহেতু অন্য যে কোনও ডিলিমিটারের ' > 'কারণে এটি উপাদানটির নির্বাচককে না ফেরায়।
উইল

শীতল, সুন্দর কাজ; এর আগে কুনিত দেখেনি। আমি ডিলিমিটারটি কেবল উপস্থাপনের জন্য অনুভব করেছি তবে এখন আমি বুঝতে পারি যে এটি আক্ষরিক নির্বাচক পথের অংশ।
drzaus

5

আপনি কি এই চেষ্টা করেছেন?

 $("*").click(function(){
    $(this).attr("id"); 
 });

3
*নির্বাচকটি ব্যবহার না করার চেষ্টা করুন , এটি খুব ধীর!
বেন কেরি

3
এটি কেবল তখনই কাজ করে যদি উপাদানটির কোনও আইডি থাকে যাতে দুর্দান্ত হয় না।
গ্লেন

2

আমি একটি jQuery প্লাগইন প্রকাশ করেছি: jQuery নির্বাচনকারী , আপনি এটির মতো নির্বাচক পেতে পারেন।

$("*").on("click", function(){
  alert($(this).getSelector().join("\n"));
  return false;
});

ক্লোন করা ভাইবোনদের সাথে এটিই একমাত্র পন্থা, ধন্যবাদ!
ব্রুনো পেরেস


2

এইভাবে $ ফাংশনটির উপরে কেবল একটি স্তর যুক্ত করুন:

$ = (function(jQ) { 
	return (function() { 
		var fnc = jQ.apply(this,arguments);
		fnc.selector = (arguments.length>0)?arguments[0]:null;
		return fnc; 
	});
})($);

এখন আপনি ভালো জিনিস করতে পারেন

$ ( "একটি")। নির্বাচক
এবং আরও নতুন jQuery সংস্করণে "একটি" ফিরিয়ে দেবে।


এটি আমি যা চেয়েছিলাম ঠিক তেমন করে। এটি আমি কতক্ষণ খুঁজছিলাম তা সন্দেহজনকভাবে কার্যকরভাবে কাজ করে! আপনাকে ধন্যবাদ আলবার্ট
মার্ক নোটন

1

http://www.selectorgadget.com/ একটি বুকমার্কলেট যা এই ব্যবহারের ক্ষেত্রে সুস্পষ্টভাবে ডিজাইন করা হয়েছে।

এটি বলেছিল, আমি বেশিরভাগ অন্যান্য ব্যক্তির সাথে একমত যে আপনার নিজেরাই সিএসএস নির্বাচনকারীদের শিখতে হবে, কোড সহ তাদের তৈরি করার চেষ্টা করা টেকসই নয়। :)


1

আমি @ জেসেগাভিনের ফিক্সে কিছু সংশোধন করেছি।

উপাদানটিতে কোনও আইডি থাকলে এই মুহুর্তে ফিরে আসবে। কোনও উপাদানের আইডি, শ্রেণি বা নাম না থাকলে আমি একটি নাম গুণবাচক চেক এবং একটি নবম শিশু নির্বাচকও যুক্ত করেছি।

পৃষ্ঠায় একাধিক ফর্ম এবং অনুরূপ ইনপুট থাকতে পারে নামটির জন্য স্কোপিংয়ের প্রয়োজন হতে পারে তবে আমি এখনও এটি পরিচালনা করি নি।

function getSelector(el){
    var $el = $(el);

    var id = $el.attr("id");
    if (id) { //"should" only be one of these if theres an ID
        return "#"+ id;
    }

    var selector = $el.parents()
                .map(function() { return this.tagName; })
                .get().reverse().join(" ");

    if (selector) {
        selector += " "+ $el[0].nodeName;
    }

    var classNames = $el.attr("class");
    if (classNames) {
        selector += "." + $.trim(classNames).replace(/\s/gi, ".");
    }

    var name = $el.attr('name');
    if (name) {
        selector += "[name='" + name + "']";
    }
    if (!name){
        var index = $el.index();
        if (index) {
            index = index + 1;
            selector += ":nth-child(" + index + ")";
        }
    }
    return selector;
}

1

উপরের সমাধানের পরেও আমি একাধিক উপাদান পাচ্ছিলাম, তাই আমি আরও পিন-পয়েন্টিং ডোম উপাদানটির জন্য dds1024 কাজ বাড়িয়েছি।

যেমন ডিআইভি: নবম-সন্তান (1) ডিআইভি: নবম-শিশু (3) ডিআইভি: নবম-সন্তান (1) নিবন্ধ: নবম-সন্তান (1) ডিআইভি: নবম-শিশু (1) ডিআইভি: নবম-সন্তান (8) ডিআইভি : নবম-সন্তান (২) ডিআইভি: নবম-শিশু (1) ডিআইভি: নবম-সন্তান (2) ডিআইভি: নবম-শিশু (1) এইচ 4: নবম-শিশু (2)

কোড:

function getSelector(el)
{
    var $el = jQuery(el);

    var selector = $el.parents(":not(html,body)")
                .map(function() { 
                                    var i = jQuery(this).index(); 
                                    i_str = ''; 

                                    if (typeof i != 'undefined') 
                                    {
                                        i = i + 1;
                                        i_str += ":nth-child(" + i + ")";
                                    }

                                    return this.tagName + i_str; 
                                })
                .get().reverse().join(" ");

    if (selector) {
        selector += " "+ $el[0].nodeName;
    }

    var index = $el.index();
    if (typeof index != 'undefined')  {
        index = index + 1;
        selector += ":nth-child(" + index + ")";
    }

    return selector;
}

1

এটি আপনাকে ক্লিক করা এইচটিএমএল উপাদানগুলির নির্বাচক পথ পেতে পারে-

 $("*").on("click", function() {

    let selectorPath = $(this).parents().map(function () {return this.tagName;}).get().reverse().join("->");

    alert(selectorPath);

    return false;

});

1

ঠিক আছে, আমি এই সহজ jQuery প্লাগইন লিখেছি।

এটি আইডি বা শ্রেণীর নাম পরীক্ষা করে এবং যথাসম্ভব যথাযথ নির্বাচক দেওয়ার চেষ্টা করে।

jQuery.fn.getSelector = function() {

    if ($(this).attr('id')) {
        return '#' + $(this).attr('id');
    }

    if ($(this).prop("tagName").toLowerCase() == 'body')    return 'body';

    var myOwn = $(this).attr('class');
    if (!myOwn) {
        myOwn = '>' + $(this).prop("tagName");
    } else {
        myOwn = '.' + myOwn.split(' ').join('.');
    }

    return $(this).parent().getSelector() + ' ' + myOwn;
}

0

আপনি কি ক্লিক করা বর্তমান ট্যাগটির নাম পাওয়ার চেষ্টা করছেন?

যদি তাই হয় তবে এটি করুন ..

$("*").click(function(){
    alert($(this)[0].nodeName);
});

আপনি সত্যই "নির্বাচক" পেতে পারেন না, আপনার ক্ষেত্রে "নির্বাচক" *


আমার ট্যাগ নাম লাগবে না। আমি যে উপাদানটি ক্লিক করেছি তার কেবল পথ প্রয়োজন।
ফিডিলিপ

1
এএইচ, কোথাও "উপাদানটির পথ" পেতে শুরু করা "নির্বাচক" এর চেয়ে অনেক আলাদা। অতএব আপনার কী প্রয়োজন উপাদান এবং এর সমস্ত পিতামাতার নাম নোড?
মার্ক শুলথিস

আমি অন্য উত্তর পোস্ট করেছি যা আপনার আসল লক্ষ্যের দিকে আরও বেশি পায়। আপনার প্রশ্নটি সম্পাদনা করা উচিত যাতে এটি আরও সুনির্দিষ্ট হয়।
জেসেগাভিন

0

এটির জন্য জাভাস্ক্রিপ্ট কোড, যদি কারওর প্রয়োজন হয় তবে আমার এটির প্রয়োজন হয়। এটি কেবল উপরের নির্বাচিত উত্তরের কেবল অনুবাদ।

    <script type="text/javascript">

function getAllParents(element){
    var a = element;
    var els = [];
    while (a && a.nodeName != "#document") {
        els.unshift(a.nodeName);
        a = a.parentNode;
    }
    return els.join(" ");
}

function getJquerySelector(element){

    var selector = getAllParents(element);
    /* if(selector){
        selector += " " + element.nodeName;
    } */
    var id = element.getAttribute("id");
    if(id){
        selector += "#" + id;
    }
    var classNames = element.getAttribute("class");
    if(classNames){
        selector += "." + classNames.replace(/^\s+|\s+$/g, '').replace(/\s/gi, ".");
    }
    console.log(selector);
    alert(selector);
    return selector;
}
</script>

0

কিছু উত্তর গ্রহণ করে এখানে পড়ুন আমি এটি প্রস্তাব করতে চাই:

function getSelectorFromElement($el) {
  if (!$el || !$el.length) {
    return ;
  }

  function _getChildSelector(index) {
    if (typeof index === 'undefined') {
      return '';
    }

    index = index + 1;
    return ':nth-child(' + index + ')';
  }

  function _getIdAndClassNames($el) {
    var selector = '';

    // attach id if exists
    var elId = $el.attr('id');
    if(elId){
      selector += '#' + elId;
    }

    // attach class names if exists
    var classNames = $el.attr('class');
    if(classNames){
      selector += '.' + classNames.replace(/^\s+|\s+$/g, '').replace(/\s/gi, '.');
    }

    return selector;
  }

  // get all parents siblings index and element's tag name,
  // except html and body elements
  var selector = $el.parents(':not(html,body)')
    .map(function() {
      var parentIndex = $(this).index();

      return this.tagName + _getChildSelector(parentIndex);
    })
    .get()
    .reverse()
    .join(' ');

  if (selector) {
    // get node name from the element itself
    selector += ' ' + $el[0].nodeName +
      // get child selector from element ifself
      _getChildSelector($el.index());
  }

  selector += _getIdAndClassNames($el);

  return selector;
}

একটি jQuery প্লাগইন তৈরি করতে দরকারী?


0

ধন্যবাদ p1nox!

আমার সমস্যাটি ছিল এমন একটি অজ্যাক্স কলটিতে ফর্ম ফোকাস করা যা ফর্মটির অংশটি পরিবর্তন করেছিল ifying

$.ajax({  url : "ajax_invite_load.php",
        async : true,
         type : 'POST',
         data : ...
     dataType : 'html',
      success : function(html, statut) {
                    var focus = $(document.activeElement).getSelector();
                    $td_left.html(html);
                    $(focus).focus();
                }
});

আমার কেবলমাত্র jQuery প্লাগইনে আপনার ফাংশনটি encapsulate করা প্রয়োজন:

    !(function ($, undefined) {

    $.fn.getSelector = function () {
      if (!this || !this.length) {
        return ;
      }

      function _getChildSelector(index) {
        if (typeof index === 'undefined') {
          return '';
        }

        index = index + 1;
        return ':nth-child(' + index + ')';
      }

      function _getIdAndClassNames($el) {
        var selector = '';

        // attach id if exists
        var elId = $el.attr('id');
        if(elId){
          selector += '#' + elId;
        }

        // attach class names if exists
        var classNames = $el.attr('class');
        if(classNames){
          selector += '.' + classNames.replace(/^\s+|\s+$/g, '').replace(/\s/gi, '.');
        }

        return selector;
      }

      // get all parents siblings index and element's tag name,
      // except html and body elements
      var selector = this.parents(':not(html,body)')
        .map(function() {
          var parentIndex = $(this).index();

          return this.tagName + _getChildSelector(parentIndex);
        })
        .get()
        .reverse()
        .join(' ');

      if (selector) {
        // get node name from the element itself
        selector += ' ' + this[0].nodeName +
          // get child selector from element ifself
          _getChildSelector(this.index());
      }

      selector += _getIdAndClassNames(this);

      return selector;
    }

})(window.jQuery);

-1

এটি আপনাকে ডোম পাথটি প্রদর্শন করবে না, তবে কোনও বস্তু দেখার সময় এটি উদাহরণস্বরূপ ক্রোম ডিবাগারটি যা দেখবে তার একটি স্ট্রিং প্রতিনিধিত্ব করে।

$('.mybtn').click( function(event){
    console.log("%s", this);    // output: "button.mybtn"
});

https://developer.chrome.com/devtools/docs/console-api#consolelogobject-object


-3

কেমন:

var selector = "*"
$(selector).click(function() {
    alert(selector);
});

আমি বিশ্বাস করি না যে jQuery স্টোরকারী নির্বাচিত পাঠ্যটি ব্যবহৃত হয়েছিল। সর্বোপরি, আপনি যদি এমন কিছু করেন তবে কীভাবে এটি কাজ করবে:

$("div").find("a").click(function() {
    // what would expect the 'selector' to be here?
});

jQuery অভ্যন্তরীণভাবে নির্বাচক $('div').find('a').selectorহয় div a। যদি ইভেন্টগুলি jQuery ফাংশনগুলির মাধ্যমে তৈরি না করা হয় তবে তার পরিবর্তে একটি মোড়ক তৈরি হয় তবে আমি বিশ্বাস করি যে ইভেন্ট হ্যান্ডলারের কাছে ডেটা আর্গুমেন্ট হিসাবে নির্বাচককে পাস করা যেতে পারে।
অনুরাগ

1
এটি কি আসলেই গুরুতর উত্তর?
গ্লেন

-5

সবচেয়ে ভাল উত্তর হবে

var selector = '#something';

$(selector).anything(function(){
  console.log(selector);
});

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