jQuery: переносить только первого и второго ребенка, а не остальных детей - PullRequest
2 голосов
/ 03 сентября 2010

В моем фактическом коде:

<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>

Я играл с пленкой, 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>

Ответы [ 3 ]

7 голосов
/ 03 сентября 2010

Сначала как Адам сказал удалить префикс # из ваших атрибутов id.Также сопоставьте свои закрывающие теги, в настоящее время у вас есть </ul>, где должно быть </div>.

Затем вы можете сделать это, используя :lt() и .wrapAll() следующим образом:

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

Получается все меньше индекса2 (0 и 1 - первые 2), затем оборачивает его. Вы можете проверить это здесь .

3 голосов
/ 03 сентября 2010

Удалить # из ваших HTML идентификаторов.

$("#mother div:eq(0), #mother div:eq(1)").wrapAll("<div id='father'></div>")
1 голос
/ 03 сентября 2010
Острый

не должен быть частью идентификатора. Тогда вы можете сделать:

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