質問

jQueryを使用すると、特定のノードから前のノードを見つけたいと思います。上記のノードと指定されたノードは同じ親ノードを持たない可能性があります。次のフラグメントを確認してください。

<div class="container">
<div id="sec1">
    <p>Some text</p>
    <p><b>Some</b> text<</p>
    <p>Some <b>more</b> text</p>
</div>
<div id="sec2">
    <p>just a text</p>
</div>
<div id="sec3">
    <p>another <span id="cursorPos1"></span>text</p>
    <p><b>yet</b> another<span id="cursorPos2"></span> text</p>
</div>
.

現在の指定されたノードが$("span#cursorPos1")であるかどうか、そして見つけたいものは前の太字のテキストであることを想定して、結果は "<b>more</b>"になります。ここで、所定のノードはdiv#sec3にあり、ターゲット前のノードはdiv#sec1にあります。

現在の指定されたノードが$("span#cursorPos2")の場合、前の太字のテキストは "<b>yet</b>"です。ここで、指定されたノードとターゲット前のノードの両方が同じdiv#sec3にあります。

基本的には、階層はまったく考慮されてはいけません。特定のノードから、セレクタは単に前の試合を見つける必要があります。

これがどのように行うことができるかについて教えてください。

ありがとう
Srikanth

役に立ちましたか?

解決

とても素敵な解決策ではなく、これがトリックをすると思います。アイデアは、すべての太字のタグとカーソル要素を見つけること、結果の配列のカーソルの位置を探してから、その前に要素を返します。

まだ一緒に投げた、おそらくより良い方法があります。これを使用している場合は、おそらく順番にエラーチェックがあります。

prevBold = function(myId) {

var boldAndMe = $('#' + myId + ', b').toArray();
    var me = $('#' + myId).get(0);
    var myPos = boldAndMe.indexOf( me );

    return myPos > 0 ? $( boldAndMe[myPos-1] ) : null;

}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top