扩展jQuery选择器


jQuery本身提供了一些强大的带有冒号的选择器,比如:first, :even这些。但是这些还满足不了需求的话,可以自己扩展一个选择器。比如要选择一些文本为”hello world”的链接,用jQuery自带的:contain是可以,但是它会把”hello world, I’m Michael”也选择进来,不够精确。于是我们就自己定义一个:text

$.extend($.expr[':'], {
    text: function(a, i, m) {
        return ((a.textContent
        || a.innerText
        || jQuery(a).text()
        || "") === m[3]);
    }
});

用$(“a:text(‘hello world’)”)来调用上面的方法,函数里的m[3]就是输入的参数,在这里为”hello world”。

测试一下:猛击我

  • hello world
  • hello world
  • hello world, I’m Michael.
  • hello world
  • hello world, I’m Leo.

发表评论