【问题标题】:javascript JQuery similar selectorjavascript JQuery 类似选择器
【发布时间】:2012-09-01 19:07:24
【问题描述】:

大家好,我想要 JQuery 选择器之类的东西。我的意思是:

JQuery 有一个类似这样的选择器:

$("#exampleID").JQexampleMethod();

我想为我的班级提供类似的东西。例如

selector("#exampleID").MYexampleMethod();

但我不知道该怎么做。我知道如何创建类并定义它们。但无法满足我的需求。到目前为止,我所做的是:

var class = new TestClass();
class.selector("#exampleID").MyExampleMethod();

【问题讨论】:

  • 你想创建一个 jQuery 插件吗?也就是说,为所有匹配给定选择器的元素调用MyExampleMethod?
  • 不,我不想创建 jquery 插件。我想拥有自己的使用类似方法的类

标签: javascript jquery class methods selector


【解决方案1】:

jQuery 使用Sizzle library 来评估选择器。

【讨论】:

  • 除非querySelectorAll 可用。
  • 不管什么库使用这种方法。我只是不知道如何为我的班级创建类似的
  • @Irakli:该库不使用该方法,它提供该方法。它是 jQuery 用来获取功能的。
【解决方案2】:

复制 jQuery 并不容易,因为它包含针对跨浏览器问题的各种修复,甚至是整个选择器库。

也就是说,如果你忽略这些问题,一个简单的原型可以如下:

var selector = function(selector) {
  var res = document.querySelectorAll(selector);  // fetch elements
  res.myExampleMethod = function() {  // add a method
    return res.length;
  };
  return res;
};

你可以这样使用它:

selector("p").myExampleMethod();  // e.g. 12

【讨论】:

  • 这就是我需要的答案。谢谢
  • 不过,它只支持IE8及更高版本:caniuse.com/#feat=queryselector如果需要支持IE7,则需要使用Sizzle之类的库。
  • 没关系,我会找一些修复的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 2011-01-17
  • 2015-02-26
  • 1970-01-01
相关资源
最近更新 更多