我試圖選擇相鄰的<p>
之間的所有內容,每次更改「p」的數量。而在p標籤對之間的內容對任何事情都沒有任何意義。有些事情是這樣的:jquery next()什麼都不返回
<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()函數即使我將其更改爲下一個(「p」)也不會返回任何內容。但是如果我使用me.next()。next()。next()。next()。next()我可以選擇下一個「p」標籤。爲什麼會發生?我怎麼能做得更好?
你問的是'
...
'或'...
IWANTTHIS...
' – bobthyasian後者。第一個太簡單了,只需$(「p」)。innerHTML ... – ericcire
如果沒有類或ID,很難做到。 – bobthyasian