【问题标题】:jQuery: Wrap only first and second child, not the rest of childrenjQuery:仅包装第一个和第二个孩子,而不是其余的孩子
【发布时间】:2011-04-07 23:27:10
【问题描述】:

在我的实际代码中:

<div id="mother">
  <div id="child-01"></div>
  <div id="child-02"></div>
  <div id="child-03"></div>
  </ul>

我需要制作:

<div id="mother">
  <div id="myWrap">
    <div id="child-01"></div>
    <div id="child-02"></div>
  </div>
  <div id="child-03"></div>
  </ul>

我在玩 wrap、.wrapAll() 和孩子们,但我被困住了。

如果在我的实际代码中我有:

<div id="mother">
  <div id="child-01"></div>
  <div id="child-02"></div>
  <div id="child-03"></div>
  </ul>

  <div id="uncle">
    <div id="cousin-01"></div>
    <div id="cousin-02"></div>
    <div id="cousin-03"></div>
    </ul>

我如何生产:

<div id="mother">
  <div id="myWrap">
    <div id="child-01"></div>
    <div id="child-02"></div>
    <div id="cousin-02"></div>
  </div>
  <div id="child-03"></div>
  </ul>

【问题讨论】:

    标签: javascript jquery children wrapall


    【解决方案1】:

    首先 Adam 表示从您的 id 属性中删除 # 前缀。还要匹配你的结束标签,目前你有一个&lt;/ul&gt;,应该是&lt;/div&gt;。

    然后,您可以像这样使用:lt() 和.wrapAll() 来做到这一点:

    $("#mother div:lt(2)").wrapAll("<div id='myWrap'></div>");
    

    这将获取小于索引 2 的所有内容(0 和 1 是前 2 个),然后将其包装。 You can test it here.

    【讨论】:

      【解决方案2】:

      从您的 HTML id 中删除 #。

      $("#mother div:eq(0), #mother div:eq(1)").wrapAll("<div id='father'></div>")
      

      【讨论】:

        【解决方案3】:

        sharp 不应该是 id 的一部分。然后你可以这样做:

        $('#child-01, #child-02').wrapAll('<div id="#mywrap" />');
        

        【讨论】:

          【解决方案4】:
          $(document).ready(function(){
            $(".new-grid__item:nth-child(1), .new-grid__item:nth-child(2)").wrapAll('<div class="child"></div>');
          });
          

          【讨论】:

          • 请格式化您的代码并添加一些文字说明为什么这会回答问题
          猜你喜欢
          • 2017-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-28
          • 1970-01-01
          • 2011-01-17
          • 1970-01-01
          • 2012-02-09
          相关资源
          最近更新 更多