當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


JQuery .slice()用法及代碼示例

用法
.slice( start [, end ] ) => jQuery

說明:將匹配元素集減少為由一係列索引指定的子集。

  • 添加的版本:1.1.4.slice( start [, end ] )

    • start
      類型:Integer
      一個整數,指示開始選擇元素的從 0 開始的位置。如果為負,則表示與集合末尾的偏移量。
    • end
      類型:Integer
      一個整數,指示元素停止被選擇的從 0 開始的位置。如果為負,則表示與集合末尾的偏移量。如果省略,則範圍將持續到集合的末尾。

給定一個表示一組 DOM 元素的 jQuery 對象,.slice() 方法構造一個新的 jQuery 對象,其中包含由 start 和可選的 end 參數指定的元素的子集。提供的start 索引標識集合中元素之一的位置;如果省略end,則該元素之後的所有元素都將包含在結果中。

考慮一個帶有簡單列表的頁麵:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

我們可以將此方法應用於列表項集:

$( "li" ).slice( 2 ).css( "background-color", "red" );

此調用的結果是項目 3、4 和 5 的紅色背景。請注意,提供的索引是從零開始的,並且是指元素在 jQuery 對象中的位置,而不是在 DOM 樹中。

end 參數允許我們進一步限製所選範圍。例如:

$( "li" ).slice( 2, 4 ).css( "background-color", "red" );

現在隻選擇了項目 3 和 4。該 index 再次從零開始;範圍擴展到但不包括指定的索引。

負 index

jQuery .slice() 方法是在 JavaScript .slice() 數組方法之後設計的。它模仿的函數之一是能夠將負數作為startend 參數傳遞。如果提供了負數,則表示從集合末尾開始的位置,而不是開頭。例如:

$( "li" ).slice( -2, -1 ).css( "background-color", "red" );

這次隻有列表項 4 變為紅色,因為它是距離末尾兩個 (-2) 和末尾一個 (-1) 之間的唯一項。

例子:

根據隨機切片將 div 變為黃色。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>slice demo</title>
  <style>
  div {
    width: 40px;
    height: 40px;
    margin: 10px;
    float: left;
    border: 2px solid blue;
  }
  span {
    color: red;
    font-weight: bold;
  }
  button {
    margin: 5px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p><button>Turn slice yellow</button>
  <span>Click the button!</span></p>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
 
<script>
function colorEm() {
  var $div = $( "div" );
  var start = Math.floor( Math.random() * $div.length );
  var end = Math.floor( Math.random() * ( $div.length - start ) ) +
    start + 1;
  if ( end === $div.length ) {
    end = undefined;
  }
  $div.css( "background", "" );
  if ( end ) {
    $div.slice( start, end ).css( "background", "yellow" );
  } else {
    $div.slice( start ).css( "background", "yellow" );
  }
  $( "span" ).text( "$( 'div' ).slice( " + start +
    (end ? ", " + end : "") +
    ").css( 'background', 'yellow' );" );
}
 
$( "button" ).click( colorEm );
</script>
 
</body>
</html>

演示:

選擇所有段落,然後對選擇進行切片以僅包含第一個元素。

$( "p" ).slice( 0, 1 ).wrapInner( "<b></b>" );

選擇所有段落,然後對選擇進行切片以僅包含第一個和第二個元素。

$( "p" ).slice( 0, 2 ).wrapInner( "<b></b>" );

選擇所有段落,然後對選擇進行切片以僅包含第二個元素。

$( "p" ).slice( 1, 2 ).wrapInner( "<b></b>" );

選擇所有段落,然後對選擇進行切片以僅包含第二個和第三個元素。

$( "p" ).slice( 1 ).wrapInner( "<b></b>" );

選擇所有段落,然後對選擇進行切片以僅包含第三個元素。

$( "p" ).slice( -1 ).wrapInner( "<b></b>" );

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .slice()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。