0

私はこのようなアウターDIVSを持っています。

<Input id ="SaveMe" value="Click" type="submit" >
</Input>

<DIV id="DivOne">
    <DIV >First Content
        <DIV>X
        </DIV>
    </DIV>
        <DIV>Second Content
            <DIV>X
            </DIV>
    </DIV>

</DIV>

外側の DIV をループしてテキストを取得したいと思います。JQuery コードを使用しています。

$("#SaveMe").click(function() {
    $("#DivOne").children().each(function(index, elem) {
        alert($(elem).text());
    });
});

しかし、最初のコンテンツ X 、2 番目のコンテンツ X が表示されます。「各ループ」が最初に外側の DIV をループし、次に内側の DIV をループすることを望んでいました。http://jsfiddle.net/VVGRc/1/

ありがとう !

4

2 に答える 2

2

テキストノードのみのフィルター:

$("#SaveMe").click(function(e) {
    $("#DivOne").children().each(function(index, elem) {
        var text = $(elem).contents().filter(function() {
            return this.nodeType == 3;
        }).text();
        alert(text);
    });
});​

フィドル

于 2012-07-29T20:40:18.100 に答える
1

http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/

男性のクローン。クローンのすべての child.elements を削除します。テキストの内容を返す

于 2012-07-29T20:29:12.317 に答える