gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:47:31 28 4
gpt4 key购买 nike

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

jQuery 语法的这种不一致/差距是否有我不明白的特殊原因?

$("#eq").click(function(){
alert($("li").eq(0).text());
$("li").eq(1).css("background-color", "yellow");
});
$("#eq2").click(function(){
alert($("li:eq(0)").text());
$("li:eq(1)").css("background-color", "yellow");
});
$("#gt").click(function(){
$("li").gt(1).css("background-color", "yellow");
});
$("#gt2").click(function(){
$("li:gt(1)").css("background-color", "yellow");
});
$("#lt").click(function(){
$("li").lt(1).css("background-color", "yellow");
});
$("#lt2").click(function(){
$("li:lt(1)").css("background-color", "yellow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="indice">
<li>Primo capitolo</li>
<li>Secondo capitolo
<ul>
<li>Sottocapitolo</li>
</ul>
</li>
<li>Terzo capitolo</li>
</ul>
<button id="eq">.eq()</button>
<button id="eq2">:eq()</button><br>
<button id="gt">.gt()</button> <!-- NO -->
<button id="gt2">:gt()</button><br>
<button id="lt">.lt()</button> <!-- NO -->
<button id="lt2">:lt()</button>

最佳答案

我认为它没有足够的用处来作为内置的。使用 .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 = function(n) {return this.slice(0,n);};
$.fn.gt = function(n) {return this.slice(n+1);};
$("div").lt(2).css("color", "blue");
$("div").gt(2).css("border", "1px solid red");
$("div").eq(2).css("background-color", "yellow");
<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于jquery - 为什么 gt() 和 lt() 只是 jQuery 选择器,而 eq() 也是一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40810197/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com