Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery :last vs:last子选择器_Jquery_Jquery Selectors - Fatal编程技术网

Jquery :last vs:last子选择器

Jquery :last vs:last子选择器,jquery,jquery-selectors,Jquery,Jquery Selectors,我注意到,$('filter:last')与jQuery中的$('filter:last child')不同 我尝试了jQuery文档,但很难理解:last还有什么其他用途,以及它们为什么都存在 显然,:last是一个jQuery扩展,不在CSS规范中。因此,我想到了一个问题:它与传统的“最后一个孩子”有何不同。另外,jQuery中碰巧有一个.last()方法,据说它比$('filter:last')更有效,那么:last选择器有什么用呢?它们非常相似。区别在于如果你有 <div>

我注意到,
$('filter:last')
与jQuery中的
$('filter:last child')
不同

我尝试了jQuery文档,但很难理解
:last
还有什么其他用途,以及它们为什么都存在


显然,
:last
是一个jQuery扩展,不在CSS规范中。因此,我想到了一个问题:它与传统的“最后一个孩子”有何不同。另外,jQuery中碰巧有一个
.last()
方法,据说它比
$('filter:last')
更有效,那么
:last
选择器有什么用呢?

它们非常相似。区别在于如果你有

<div>
  <p>hi</p>
  <p>bye</p>
</div>
<div>
  <p>hi</p>
  <p>bye</p>
</div>

再见

再见


$('p:last child')
将选择这两个
元素,而
$('p:last')
将只选择第二个元素。同样,同样的事情也可以用
$('p').last()
完成,方法是添加
:last
,作为选择器jQuery允许使用带有
:last
的筛选器,而无需将筛选器的参数设置为函数。

:last选择器只匹配单个元素,:最后一个子项可以匹配多个:每个父项一个

请参见下面的示例以获得更好的说明-

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>last-child demo</title>
  <style>
 span.solast {
   text-decoration: line-through;
  }
 </style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
 </head>
<body>

<div>
 <span>John,</span>
 <span>Karl,</span>
 <span>Brandon,</span>
 <span>Sam</span>
</div>
 <div>
  <span>Glen,</span>
  <span>Tane,</span>
  <span>Ralph,</span>
  <span>David</span>
 </div>
<table>
  <tr><td>First Row</td></tr>
  <tr><td>Middle Row</td></tr>
  <tr><td>Last Row</td></tr>
</table>

<table>
  <tr><td>Second Table First Row</td></tr>
  <tr><td>Second Table Middle Row</td></tr>
  <tr><td>Second Table Last Row</td></tr> 
</table>


<script>
$( "div span:last-child" )
 .css({ color:"red", fontSize:"80%" })
 .hover(function() {
    $( this ).addClass( "solast" );
  }, function() {
    $( this ).removeClass( "solast" );
  });

$( "table tr:last" ).css({ backgroundColor: "yellow", fontWeight: "bolder" 
});
</script>

</body>
</html>

最后一个孩子演示
斯潘·索拉斯特{
文字装饰:线条贯通;
}
厕所,
卡尔,
布兰登,
山姆
格伦,
Tane,
拉尔夫,
大卫
第一排
中排
最后一排
第二个表格第一行
第二张桌子中间一行
第二张表最后一行
$(“分区范围:最后一个孩子”)
.css({颜色:“红色”,字体大小:“80%”)
.hover(函数(){
$(本).addClass(“solast”);
},函数(){
$(此).removeClass(“solast”);
});
$(“table tr:last”).css({backgroundColor:“黄色”,fontwweight:“粗体”
});

您可以在上面的代码中看到:last选择器只更改一个tr的黄色背景,而不是两个tr的黄色背景,这意味着:last只选择单个元素。鉴于:last child将选择每个元素last child。

:While:last仅匹配单个元素,:last child可以为每个父元素匹配多个:一个。-这其中哪一部分不清楚?我在看。我错了。@cale_b:那部分是应该读医生的部分有,也有……;)«更好的说明»将使用代码段进行优化。稍微探索一下编辑模式的图标。这是一个很好的例子,但是@LouySpatriceBesette说明了一个很好的观点。请尝试编辑您的文章,并使用代码片段对其进行一点优化。嗨@LouysPatriceBesette我是stackoverflow的新手,请您在这里提及如何使用代码片段,我不太确定您在说什么有一篇详细的博客文章。