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


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

用法
.wrapInner( wrappingElement ) => jQuery

說明:圍繞匹配元素集中每個元素的內容包裝一個 HTML 結構。

  • 添加的版本:1.2.wrapInner( wrappingElement )

    • wrappingElement
      類型:htmlStringSelectorjQueryElement
      一個 HTML 片段、選擇器表達式、jQuery 對象或 DOM 元素,指定了包含匹配元素內容的結構。
  • 添加的版本:1.4.wrapInner( function )

    • function
      類型:Function(Integer索引)=>String
      一個回調函數,它生成一個結構來包匹配元素的內容。接收集合中元素的索引位置作為參數。在函數中,this 指的是集合中的當前元素。

.wrapInner() 函數可以采用可以傳遞給 $() 工廠函數的任何字符串或對象來指定 DOM 結構。這個結構可以嵌套好幾層,但應該隻包含一個最裏麵的元素。該結構將包匹配元素集中每個元素的內容。

考慮以下 HTML:

<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>

使用 .wrapInner() ,我們可以在每個內部 <div> 元素的內容周圍插入一個 HTML 結構,如下所示:

$( ".inner" ).wrapInner( "<div class='new'></div>");

新的<div> 元素是動態創建並添加到 DOM 中的。結果是一個新的 <div> 圍繞每個匹配元素的內容:

<div class="container">
  <div class="inner">
    <div class="new">Hello</div>
  </div>
  <div class="inner">
    <div class="new">Goodbye</div>
  </div>
</div>

該方法的第二個版本允許我們指定一個回調函數。這個回調函數將為每個匹配的元素調用一次;它應該返回一個 DOM 元素、jQuery 對象或 HTML 片段,在其中包裝相應元素的內容。例如:

$( ".inner" ).wrapInner(function() {
  return "<div class='" + this.nodeValue + "'></div>";
});

這將導致每個 <div> 都有一個與其包裝的文本相對應的類:

<div class="container">
  <div class="inner">
    <div class="Hello">Hello</div>
  </div>
  <div class="inner">
    <div class="Goodbye">Goodbye</div>
  </div>
</div>

注意:將選擇器字符串傳遞給.wrapInner()函數,預期的輸入是帶有正確閉合標簽的格式良好的 HTML。有效輸入的示例包括:

$( elem ).wrapInner( "<div class='test'></div>" );
$( elem ).wrapInner( "<div class=\"test\"></div>" );

例子:

選擇所有段落並在其每個內容周圍加上一個粗體標記。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapInner demo</title>
  <style>
  p {
    background: #bbf;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p>Hello</p>
<p>cruel</p>
<p>World</p>
 
<script>
$( "p" ).wrapInner( "<b></b>" );
</script>
 
</body>
</html>

演示:

將新創建的對象樹包在主體內部。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapInner demo</title>
  <style>
  div {
    border: 2px green solid;
    margin: 2px;
    padding: 2px;
  }
  p {
    background: yellow;
    margin: 2px;
    padding: 2px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
Plain old text, or is it?
 
<script>
$( "body" ).wrapInner( "<div><div><p><em><b></b></em></p></div></div>" );
</script>
 
</body>
</html>

演示:

選擇所有段落並在其每個內容周圍加上一個粗體標記。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapInner demo</title>
  <style>
  p {
    background: #9f9;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p>Hello</p>
<p>cruel</p>
<p>World</p>
 
<script>
$( "p" ).wrapInner( document.createElement( "b" ) );
</script>
 
</body>
</html>

演示:

選擇所有段落並圍繞其每個內容包裝一個 jQuery 對象。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapInner demo</title>
  <style>
  p {
    background: #9f9;
  }
  .red {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p>Hello</p>
<p>cruel</p>
<p>World</p>
 
<script>
$( "p" ).wrapInner( $( "<span class='red'></span>" ) );
</script>
 
</body>
</html>

演示:

相關用法


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