【问题标题】:jQuery .selector property removed, workaround?jQuery .selector 属性已删除,解决方法?
【发布时间】:2013-05-30 12:52:07
【问题描述】:

我正在尝试获取用于调用当前脚本的选择器,但我需要的属性当然是removed for some reason.

有解决办法吗?这基本上是我想要完成的:

(function($) {
    $.fn.myplugin = function(options) {
        return this.each(function() {
            console.log($(this).selector);
        });
    }
}(jQuery));

//Somwehere else:

$('.theClassISelected').myplugin();  //Should console.log('.theClassISelected')

我需要在控制台中查看.theClassISelected(或我用来调用该函数的原始选择器的某种形式),但由于选择器属性已从 jQuery 中删除,它不再可能了。

我不明白为什么它被删除了 - 我已经用谷歌搜索了这个问题一段时间,我看到的只是 2011-2012 年 StackOverflow 的答案,推荐 selector 属性。我想它在某些时候有用,但现在不再有用了?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

来自 jQuery 文档:

需要使用选择器的插件应该让调用者在初始化期间将选择器作为插件参数的一部分传入。

http://api.jquery.com/selector/

顺便说一句,文档还提到选择器属性不可靠,因为“因为后续遍历方法可能已经改变了集合。”

【讨论】:

  • 是的,但$('.theClassISelected').myplugin($('.theClassIsSelected')); 在我看来更糟。
  • @Jaxo 同意...这很丑,但我看不到其他访问选择器的方法:/
  • @roasted 和 cfs 我没有投反对票,不知道它来自哪里。 StackOverflow 说“这个帖子的一个新答案”,我点击它找到帖子 insta-downvoted。反对票!
  • @Jaxo 传递一个字符串而不是一个 jQuery 对象。
  • @Jaxo 我没有说你对这个答案投了反对票,我是在和匿名反对票的人说话;)
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2013-04-21
  • 2020-06-18
  • 1970-01-01
  • 1970-01-01
  • 2017-06-13
  • 1970-01-01
相关资源
最近更新 更多