0

私の XML には、ルート要素と同じ名前の子要素がいくつかあります。これらの子要素だけを選択する方法を探していますが、ルート要素は選択しません。私はjQueryセレクターのドキュメントを調べて、たくさんグーグルで検索しましたが、私が見つけることができるのは、反対の問題に直面している人だけです:子とルートの選択は、完全に正常に機能しています(細かすぎます:))私のため!

XML の例を次に示します。

<myElement>
    <someElementWithVariableName>
        <someMoreVariationElement>
            <myElement>
                <leafNode1/>
                <leafNode2/>
            </myElement>
            <myElement/>
        </someMoreVariationElement>
    <someElementWithVariableName>
</myElement>

次の操作を行うと、ルート要素と someMoreVariationElement の 2 つの子要素の 2 つのオブジェクトが取得されます。

$(inputXml).find("myElement")

私は疑問に思っていました、多分私は使うことができます

$(inputXml).find("myElement > *")

ただし、これは myElement が実際にルート要素である場合にのみ機能しますが、それは保証されていません。それは別のものかもしれません。someElementWithVariableName と someMoreVariationElement のように、どちらも何でもかまいません。基本的に... myElement が何かの子である場合にのみ取得するセレクターが必要です。

(レベル 3 の myElement のすべてのインスタンスのみを選択するとさらに良いでしょう (ルートをレベル 0、someElementWithVariableName をレベル 1、someMoreVariationElement をレベル 2 としてカウント))

4

2 に答える 2

3

この特定のケースでは、次のコードを使用できるはずです。(Divsを使用した例

$(inputXml).find("myElement:not(:first)")
于 2011-04-21T11:54:21.747 に答える
1

実際myElementに がルート要素である場合、結果セットには含まれません。検索は選択したノードの下にあるためです。

ドキュメントのドキュメントからの引用.find()

説明:セレクターによってフィルター処理された、一致する要素の現在のセット内の各要素の子孫を取得します。

必要なのは$(inputXml).find("* > myElement")

しかし、実際に別の下に (任意の深さでmyElement)ネストされている場合は、それらの両方を取得します (親もルートではないと仮定します.. )myElement

于 2011-04-21T12:11:34.560 に答える