<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<div class="messag"/>
<p><strong>Позиционные селекторы</strong><br />
Эти селекторы используются для выборки объектов на основе их положения по отношению к другим элементам, например на основе вложенности или наличия вложенных объектов, порядка следования в очереди (парные, не парные, первый элемент, последний элемент).</p>
<div>{spec}
<p>Выбор первого элемента:<br />
<span style="color: #333399;">$(«li:first»)</span> // здесь выбирается первый элемент <li></p>
<p>Выбор последнего элемента:<br />
<span style="color: #333399;">$(«p:last»)</span> // здесь выбирается последний элемент p</p>
<p>Выбор каждого второго элемента начиная с 0 (индексация эллементов с нуля):<br />
<span style="color: #333399;">$(«p:even»)</span> // каждый второй параграф начиная с нулевого</p></div>
{/spec}
<p>Выбор каждого второго элемента начиная с первого:<br />
<span style="color: #333399;">$(«.mega-div:odd»)</span> // выбор каждого второго элемента с классом .mega-div начиная с первого (индексация с нуля)</p>
</div>
<div id="Test00" style="/*display:none;*/"/></div>
<script type="text/javascript">
var str='<div id=St>'+$(".messag").html()+'</div>';
function Replac(str) {
a = $("#Test00")//.remove();
a.append(str);//alert(">"+a.html());
var b;
a.find(":contains('\{\/spec\}')").each(function(){ b=$(this); });
var c;
a.find(":contains('\{spec\}')").each(function() {c=$(this); });
var ind1 = b.parents().length; //кол-во родителей
var ind2 = c.parents().length; //кол-во родителей
var B=b,C=c; //alert(c.html())
var arrB=[], arrC=[]; arrB[0]=b; arrC[0]=c;
for(var i=0; i<ind1; i++) {
for(var j=0; j<ind2; j++) {
if(j)arrC[i+1]=C;
if(B.get(0)!=C.get(0)) {C=c.parents().eq(j);} else break;
}
if(i)arrB[i+1]=B;
if(B.get(0)!=C.get(0)) {B=b.parents().eq(i);} else break;
}
alert(B.get(0)==C.get(0));
if(i>0){
b.html(b.html().replace(/\s*(\{\/spec\})\s*/ig,' '));
arrB[i-1].after('\{\/spec\}')
}
if(j>0){
c.html(c.html().replace(/\s*(\{spec\})\s*/ig,' '));
arrC[j-1].before('\{spec\}');
}
$("div#St").replaceWith($("div#St").html())
return a.html()
}
alert(Replac(str))
</script>
Собственно Переношу - выше ниже к ближайшим тегам от выделенного(если спец-теги не в одной упаковке