为什么gt()和lt()只是jQuery选择器,而eq()也是一个方法?

为什么gt()和lt()只是jQuery选择器,而eq()也是一个方法?,jquery,Jquery,在jQuery中,为什么只有eq()既是选择器(:)又是方法(),而gt()和lt()只是选择器(“对象不支持该属性或方法”) jQuery语法的这种不一致性/差异是否有我不理解的特殊原因 $(“#eq”)。单击(函数(){ 警报($(“li”).eq(0.text()); $(“li”).eq(1).css(“背景色”、“黄色”); }); $(“#eq2”)。单击(函数(){ 警报($((“li:eq(0)”).text()); $(“li:eq(1)”).css(“背景色”、“黄色”);

在jQuery中,为什么只有
eq()
既是选择器(:)又是方法(),而
gt()
lt()
只是选择器(“对象不支持该属性或方法”)

jQuery语法的这种不一致性/差异是否有我不理解的特殊原因

$(“#eq”)。单击(函数(){
警报($(“li”).eq(0.text());
$(“li”).eq(1).css(“背景色”、“黄色”);
});
$(“#eq2”)。单击(函数(){
警报($((“li:eq(0)”).text());
$(“li:eq(1)”).css(“背景色”、“黄色”);
});
$(“#gt”)。单击(函数(){
$(“li”).gt(1).css(“背景色”、“黄色”);
});
$(“#gt2”)。单击(函数(){
$(“li:gt(1)”).css(“背景色”、“黄色”);
});
$(“#lt”)。单击(函数(){
$(“li”).lt(1).css(“背景色”、“黄色”);
});
$(“#lt2”)。单击(函数(){
$(“li:lt(1)”).css(“背景色”、“黄色”);
});

  • 首乌
  • 第二首都酒店
    • 索托卡皮托洛
  • 头颅特佐
.eq() :eq()
.gt() :gt()
.lt()
:lt()。使用
.eq()
而不是
:eq
允许jQuery使用
querySelectorAll
来大幅提高性能

在任何情况下,您都可以像这样使用
.slice

$("li").slice(0,4); // :lt(4)
$("li").slice(5); // :gt(4)
或者,自己添加它们:

$.fn.lt = function(n) {return this.slice(0,n);};
$.fn.gt = function(n) {return this.slice(n+1);};
例如:

$.fn.lt=函数(n){返回此.slice(0,n);};
$.fn.gt=函数(n){返回这个.slice(n+1);};
$(“div”).lt(2).css(“颜色”、“蓝色”);
$(“div”).gt(2).css(“边框”,“1px实心红色”);
$(“div”).eq(2).css(“背景色”、“黄色”)
0
1.
2.
3.
4.