Jquery 如何从on方法内部获取选择器字符串?

Jquery 如何从on方法内部获取选择器字符串?,jquery,jquery-plugins,Jquery,Jquery Plugins,我正在创建一个jQuery插件,它在方法上调用。现在我需要从该方法内部获取选择器字符串。我有办法做到吗 (function($) { return this.each(function () { var $this = $(this); $(document).on('click', 'a[href="#post"]', function(event) { event.preventDefault

我正在创建一个jQuery插件,它在方法上调用
。现在我需要从该方法内部获取选择器字符串。我有办法做到吗

(function($) {

        return this.each(function () {
            var $this = $(this);

            $(document).on('click', 'a[href="#post"]', function(event) {
                event.preventDefault();

                // I need to get the 'a[href="#post"]' string from here
        });
    });
}
})(jQuery);
谢谢。

如果需要将“a”标记显示为字符串,请参阅我的

$('<div>').append($this.clone()).html();
$('').append($this.clone()).html();
jsFiddle在这里可用

如果需要将“a”标记显示为字符串,请参阅my

$('<div>').append($this.clone()).html();
$('').append($this.clone()).html();
jsFiddle在这里可用


确实不确定您想要的是什么,但是您可以使用
this
on()
方法中的元素进行完全访问

(function($) {

    return this.each(function () {
        var $this = $(this);

        $(document).on('click', 'a[href="#post"]', function(event) {
            event.preventDefault();

            alert( $(this).attr('href') );
       });
    });
  };
})(jQuery);

至于实际的选择器字符串。。。它是硬编码到您的示例中的,因此不确定您对该部分的要求是什么

确实不确定您的目标是什么,但您可以使用
this
完全访问
on()
方法中的元素

(function($) {

    return this.each(function () {
        var $this = $(this);

        $(document).on('click', 'a[href="#post"]', function(event) {
            event.preventDefault();

            alert( $(this).attr('href') );
       });
    });
  };
})(jQuery);

至于实际的选择器字符串。。。它是硬编码到您的示例中的,因此不确定您对该部分的要求,jQuery没有提供此信息,但我想到了其他方法。例如:

(function() {
    var selector = 'a[href="#post"]';
    $(document).on('click', selector, function(event) {
        event.preventDefault();
        console.log(selector);
    });
})();


然而,这是一种有点可疑的做法,很可能还有其他更简单的方法来实现您的目标。

jQuery没有提供这些信息,但是想到了其他方法。例如:

(function() {
    var selector = 'a[href="#post"]';
    $(document).on('click', selector, function(event) {
        event.preventDefault();
        console.log(selector);
    });
})();

然而,这是一个有点可疑的做法,很可能有其他更简单的方法来实现你的目标