2012-09-07 8 views
12

イメージのスライドショーを作成しようとしていますが、イメージとテキストを入力するリッチテキストエディタがあります。したがって、このhtmlから:jQuery 2つの文字列識別子の間で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と#end-sliderの間でどのようにhtmlを選択しますか?

それはブログのコメントなどで[リンク]と[/リンク]の間のテキストを抽出することに似た概念です:[リンク] http://google.com [/リンク]

+0

を試してみては#はIDまたはテキストコンテンツをslider' 'ですか? – undefined

+0

#sliderはテキストだけです –

+2

大雑把には「似ていません」、角括弧 '[tags]'は正規表現でのみ解析でき、通常はサニタイズ(ネストされたタグなど)のためにサーバ側で処理されます。今では実際の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'セレクタは意図しない何かを捕まえるかもしれません。 '

#スレーダー***ヘッドキーボード*** dsgdfhdfjdfj

'。 OPはそれでもOKかもしれません。 –

2

この

$(document).ready(function(){ 
    $('p:contains("#slider")').nextUntil('p:contains("#end-slider")'); 
}); 
関連する問題