2016-08-16 29 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>

相关问题