2011-12-14 9 views
0

こんにちは私はラップ()が正常に動作しているが、問題は、ラップを開始する場所(要素IDによって..# start)とそれをどこで終わらせるか(要素ID ... #endによって)。これは可能ですか?私は質問を表現する良い仕事をしましたか?ありがとう。jQuery - ラップの問題 - 要素を宣言したい

+0

DOMで要素を作成してノードを追加するだけでは問題がありませんか? –

答えて

1

あなたの場合本当に含むdiv要素の次に1人の兄弟からラップしようとして「再、あなたはこのようにそれを行うことができます。

function wrap(begin, end) { 
    var start = $(begin); 
    var div = $("<div>").addClass("wrap").insertBefore(start); 
    start.nextUntil(end).add(start).add(end).appendTo(div); 
    return(div); 
} 

あなたは、それはここで働いて見ることができます:http://jsfiddle.net/jfriend00/YFxpN/

1
$("#start").nextUntil("#end").add("#end") 

それとも、それは排他的になりたいFF、次の操作を行います。

$("#start").nextUntil("#end").not('#start') 

そして、はい、あなたはその質問にフレージングまともな仕事をしてくれました。 nextUntil方法について


さらに詳しい情報:http://api.jquery.com/nextUntil/

1

イワンCastellanosの答えは近いですが、あなたはそれが同様に開始要素を含めたい場合、あなたはこれを使用する必要があります:

$("#start").nextUntil("#end").add('#start').add("#end") 
限り、排他的であるとして、これはうまくいく

$("#start").nextUntil("#end") 
+0

完璧!ありがとう。 – webwrks

+0

こんにちはJesse、あなたはjsfiddle.net/JMcJfを見て、なぜそれらが個々のdivにラップされているのか教えてください。私はちょうど1つのdivがすべてそれらを包むようにしたい...ちょうど太字の価格からリストされた最後の価格まで。ありがとう! – webwrks

+0

上記のメソッドは、一致する要素のそれぞれに配列のようなオブジェクトを作成します。ラップ関数は、この配列のようなオブジェクトの各要素で呼び出されています。 @ jfriend00がそれをどのようにしたかを見てみましょう。 – JesseBuesking

関連する問題