2016-08-16 58 views
0

之間我需要刮網站,看起來像這樣:jQuery的 - 獲取所有的HTML一些標籤

<p></p> 

<!-- I want to get HTML from here... --> 

<h2> </h2> 
<table> </table> 

<h2> </h2> 
<table> </table> 

<h2> </h2> 
<table> </table> 

<!-- to here --> 

<div> </div> 

<h2> </h2> 
<table> </table> 

正如上面標註的,我想<p><div>之間的所有HTML。我不想<h2><table>下面的div。

有沒有很好的方法來刮這些部分?如果可能的話,我想避免針對兒童索引。

感謝

+0

你可以用你想在一個DIV報廢,然後輕鬆地就廢了所有的HTML標籤。 –

+0

@HarshSanghani不幸的是,我無法編輯該網站的HTML – hrsetyono

+0

使用他人解決你的問題的答案? –

回答

4

$('p').nextUntil('div').addClass('add')
.add{color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p></p> 
 

 
<!-- I want to get HTML from here... --> 
 

 
<h2> I want to get HTML from here...</h2> 
 
<table><tr><td>I want to get HTML from here...</td></tr> </table> 
 

 
<h2> I want to get HTML from here...</h2> 
 
<table><tr><td>I want to get HTML from here...</td></tr> </table> 
 

 
<h2> I want to get HTML from here...</h2> 
 
<table><tr><td>I want to get HTML from here...</td></tr> </table> 
 

 
<!-- to here --> 
 

 
<div> </div> 
 

 
<h2> </h2> 
 
<table> </table>

使用.nextUntil()

獲取每個元素最多,但不包括選擇,DOM節點或jQuery的匹配元素的所有後面的兄弟姐妹對象已通過。

+0

漂亮而聰明的作品 –

+1

不錯,從來不知道這個函數存在於jQuery中 – hrsetyono

3

使用.nextUntil()將特定元素的所有下一個元素獲取到任何特定元素。

console.log($("p:first").nextUntil("div"))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<p></p> 
 

 
<!-- I want to get HTML from here... --> 
 

 
<h2> </h2> 
 
<table> </table> 
 

 
<h2> </h2> 
 
<table> </table> 
 

 
<h2> </h2> 
 
<table> </table> 
 

 
<!-- to here --> 
 

 
<div> </div> 
 

 
<h2> </h2> 
 
<table> </table>