Я пытался выбрать все между соседними <p>
, количество "p" каждый раз меняется. А содержимое между p-парами тегов может быть ни к чему. Что-то вроде этого:
<p><a href="x">...ABC...</a></p>
<<<<<<<< Beginning of what I want >>>>>>>>
<fieldset>...</fieldset>
<font title="...">...</font>
sometext without any tag<br>
<a href="...">...</a>
//[0..N] more tags
<<<<<<<< End of what I want >>>>>>>>
<p><a href="x+1">...ABC...</a></p>
[0..N] more "p"'s with similar pattern ("p" with random url in "a")
Обновлять:
Я хочу обернуть эти мошеннические коды (нетегированный текст) в какой-нибудь div, чтобы я мог их обработать позже. Как это:
<div id="outer">
<div id="1">
<p><a href="x">...ABC...</a></p>
<! Beginning of what I want >
<fieldset>...</fieldset>
<font title="...">...</font>
sometext without any tag<br>
<a href="...">...</a>
//[0..N] more tags
<! End of what I want >
</div>
<div id="2">
<p><a href="x+1">...ABC...</a></p>
</div>
<div id="3">
//something or nothing
</div>
//something or nothing
</div>
Для этого мне пришлось использовать этот код, потому что вокруг него есть текст без каких-либо тегов:
var ps = $("p:contains('ABC')");
ps.each(function(){
if(!($(this).next()[0])){
return true;
}
var me = $(this);
var pa = me.parent().contents();
var nx = me.next("p:contains('ABC')"); //returns [] in this case
var i0 = pa.index(me);
var i1 = pa.index(nx);
if (i1 > i0) {
var elements = pa.slice(i0, i1);
elements.each(function(){
//Do something
});
}
});
Как отмечено в коде, функция next() ничего не вернет, даже если я изменю ее на next("p"). Но если я использую me.next().next().next().next().next(), я могу выбрать следующий тег "p". Почему это произошло? Как я могу сделать это лучше?
<p>...</p>
или<p>...</p>IWANTTHIS<p>...</p>
- person bobthyasian   schedule 16.12.2012