当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery .wrap()用法及代码示例


用法
.wrap( wrappingElement ) => jQuery

说明:在匹配元素集中的每个元素周围包一个 HTML 结构。

  • 添加的版本:1.0.wrap( wrappingElement )

    • wrappingElement
      类型:SelectorhtmlStringElementjQuery
      一个选择器、元素、HTML 字符串或 jQuery 对象,指定用于环绕匹配元素的结构。当您传递包含多个元素的 jQuery 集合或匹配多个元素的选择器时,将使用第一个元素。
  • 添加的版本:1.4.wrap( function )

    • function
      类型:Function(Integer 索引)=> StringjQuery
      一个回调函数,返回 HTML 内容或 jQuery 对象以环绕匹配的元素。接收集合中元素的索引位置作为参数。在函数中,this 指的是集合中的当前元素。

.wrap() 函数可以采用可以传递给 $() 工厂函数的任何字符串或对象来指定 DOM 结构。这个结构可以嵌套好几层,但应该只包含一个最里面的元素。此结构的副本将环绕匹配元素集中的每个元素。此方法返回用于链接目的的原始元素集。

考虑以下 HTML:

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

使用 .wrap() ,我们可以在内部 <div> 元素周围插入一个 HTML 结构,如下所示:

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

新的<div> 元素是动态创建并添加到 DOM 中的。结果是一个新的 <div> 包在每个匹配的元素周围:

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

该方法的第二个版本允许我们指定一个回调函数。这个回调函数将为每个匹配的元素调用一次;它应该返回一个 DOM 元素、jQuery 对象或 HTML 片段,在其中包装相应的元素。例如:

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

这将导致每个 <div> 都有一个与其包装的文本相对应的类:

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

例子:

围绕所有段落包一个新的 div。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrap demo</title>
  <style>
  div {
    border: 2px solid blue;
  }
  p {
    background: yellow;
    margin: 4px;
  }
  </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" ).wrap( "<div></div>" );
</script>
 
</body>
</html>

演示:

在跨度周围包一个新创建的对象树。请注意,跨度之间的任何内容都会像本例中的 <strong>(红色文本)一样被忽略。甚至跨度之间的空白也被忽略了。单击查看源代码以查看原始 html。>

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrap demo</title>
  <style>
  div {
    border: 2px blue solid;
    margin: 2px;
    padding: 2px;
  }
  p {
    background: yellow;
    margin: 2px;
    padding: 2px;
  }
  strong {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<span>Span Text</span>
<strong>What about me?</strong>
<span>Another One</span>
 
<script>
$( "span" ).wrap( "<div><div><p><em><b></b></em></p></div></div>" );
</script>
 
</body>
</html>

演示:

围绕所有段落包一个新的 div。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrap demo</title>
  <style>
  div {
    border: 2px solid blue;
  }
  p {
    background: yellow;
    margin: 4px;
  }
  </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" ).wrap( document.createElement( "div" ) );
</script>
 
</body>
</html>

演示:

在所有段落周围包一个 jQuery 对象双深度 div。请注意,它不会移动对象,而只是将其克隆以环绕其目标。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrap demo</title>
  <style>
  div {
    border: 2px solid blue;
    margin: 2px;
    padding: 2px;
  }
  .doublediv {
    border-color: red;
  }
  p {
    background: yellow;
    margin: 4px;
    font-size: 14px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p>Hello</p>
<p>cruel</p>
<p>World</p>
<div class="doublediv"><div></div></div>
 
<script>
$( "p" ).wrap( $( ".doublediv" ) );
</script>
 
</body>
</html>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .wrap()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。