Обход DOM с использованием разделителя Div - Использование Ext-Core и / или Jquery - PullRequest
1 голос
/ 19 октября 2010

Я пробовал много вещей, но я прошу вашей помощи, потому что я делаю глупости сейчас! вот что я хочу сделать. Я хочу преобразовать HTML-файл (я не сочиняю) в другой. Я хочу переместить некоторые части тела в div. Вот оригинал:

<body>
text+images part 1
<div class="sep">some text</div>
tex+images part2
<div class="sep">some text</div>
text+images part3
</body>

и вот что я хочу:

<body>
<div id="div_1">
text+images part 1
</div>
<div id="div_2">
tex+images part2
</div>
<div id="div_3">
text+images part3
</div>
...
</body>

Фактически, div с class = "sep" будет использоваться в качестве разделителя и не будет отображаться в конечном результате.

Я надеюсь, что я ясен, и кто-то может мне помочь. С наилучшими пожеланиями. Доминик.

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Теперь я наконец нашел решение:

$("body").prepend('<div class="sep">some text</div>');
$('.sep').each(function(i){
    var $set = $();
    var nxt = this.nextSibling;
    while(nxt) {
        if(!$(nxt).is('.sep')) {
            $set.push(nxt);
            nxt = nxt.nextSibling;
        } else break;
    }
   $set.wrapAll('<div class="text" id="div_'+i+'"/>');
});
$(".sep").hide(); // or remove

(см. http://jsfiddle.net/sK2xN/1/ и SO: jQuery перенос текста и элементов между тегами <hr>. )

0 голосов
/ 19 октября 2010
i = 0;
$("body").contents().filter(function() {
  return this.nodeName.toLowerCase() != 'div'; // all elements but <div>s
})
.wrap(function() {
  i++;
  return $("<div />").addClass("text").attr("id", "div_"+i);
});
$(".sep").hide(); // or remove()

(см. http://jsfiddle.net/FmjMx/4)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...