2012-09-07 41 views
12

我试图做一个幻灯片的图像,我拥有的是一个富文本编辑器来输入图像和文本。所以从这个HTML:jQuery选择两个字符串标识符之间的HTML

<h1>title</h1> 
<p>description...</p> 

<p>#slider</p> 

<p><img src="a.jpg" /></p> 
<p><img src="b.jpg" /></p> 
<p><img src="c.jpg" /></p> 

<p>#end-slider</p> 

你会如何选择#slider和#结束滑块之间的HTML?

这是一个类似的概念[链接]和[/链接]在博客的评论如之间提取文本:[链接] http://google.com [/链接]

+0

是'#slider'的ID或文本内容? – undefined

+0

#slider只是文本 –

+2

不完全“相似”,方括号'[标签]'只能由正则表达式解析 - 通常在服务器端进行消毒(嵌套标签等)。现在,您将展示具有文本节点的实际DOM元素,确保您可以*使用正则表达式解析它们,但是有更好的方法。 –

回答

6

试试这个:

$('p:contains("#slider")').nextUntil('p:contains("#end-slider")') 

更新:

var end = $('p:contains("#end-slider")'); 
$('p:contains("#slider")').nextUntil(end).andSelf().add(end) 

http://jsfiddle.net/63kQC/

+0

谢谢,这工作得很好!也想知道是否有一种方法来选择它的所有,所以标识符和HTML即#slider html#end-slider? –

+0

@PaulMason是的,尝试更新的代码。 – undefined

+0

优秀!谢谢 –

8
$(document).ready(function() { 
    $('p:contains("#slider")') 
     .nextUntil('p:contains("#end-slider")') 
     .wrapAll("<div id='stuff'></div>"); 
    var required = $('#stuff').html(); 
}); 

http://jsfiddle.net/483kL/

+1

awesome :) :) :) :) – AdityaParab

+1

当然,':contains'选择器可能会捕获一些无意识的东西,例如'

#滑板*** headkeyboard *** dsgdfhdfjdfj

'。 OP虽然可以。 –

2

试试这个

$(document).ready(function(){ 
    $('p:contains("#slider")').nextUntil('p:contains("#end-slider")'); 
}); 
相关问题