2

隣接するものの間ですべてを選択しようとしていましたが<p>、「p」の数は毎回変わります。そして、pタグペアの間のコンテンツは何の役にも立たない可能性があります。このようなもの:

    <p><a href="x">...ABC...</a></p>

    <<<<<<<< Beginning of what I want >>>>>>>>

    <fieldset>...</fieldset>
    <font title="...">...</font>
    sometext without any tag<br>
    <a href="...">...</a>
    //[0..N] more tags

    <<<<<<<< End of what I want >>>>>>>>

    <p><a href="x+1">...ABC...</a></p>
    [0..N] more "p"'s with similar pattern ("p" with random url in "a")

アップデート:

後で処理できるように、これらの不正なコード(タグなしテキスト)をいくつかのdivにラップしたいと思います。このような:

<div id="outer">
    <div id="1">
        <p><a href="x">...ABC...</a></p>

    <! Beginning of what I want >

        <fieldset>...</fieldset>
        <font title="...">...</font>
        sometext without any tag<br>
        <a href="...">...</a>
        //[0..N] more tags

    <! End of what I want >
    </div>
    <div id="2">
        <p><a href="x+1">...ABC...</a></p>
    </div>
    <div id="3">
        //something or nothing
    </div>
    //something or nothing
</div>

そのためには、タグのないテキストが含まれているため、このコードを使用する必要がありました。

    var ps = $("p:contains('ABC')");
    ps.each(function(){
        if(!($(this).next()[0])){
            return true;
        }
        var me = $(this);
        var pa = me.parent().contents();
        var nx = me.next("p:contains('ABC')"); //returns [] in this case
        var i0 = pa.index(me);
        var i1 = pa.index(nx);
        if (i1 > i0) {
            var elements = pa.slice(i0, i1);
            elements.each(function(){
                //Do something
            });
        }
    }); 

コードでマークされているように、next( "p")に変更しても、next()関数は何も返しません。しかし、me.next()。next()。next()。next()。next()を使用すると、次の「p」タグを選択できます。なぜこれが起こるのでしょうか?どうすればもっとうまくできますか?

4

2 に答える 2

2

あなた.nextUntil("p")はこの目的のために使うべきです!.next()は次の要素のみをチェックし、nextUntil()は関連する要素が見つかるまで検索するためです。

于 2012-12-16T08:48:39.980 に答える
1

あなたの質問を読んだ後、私が得ているのは、<p>タグからのコンテンツが欲しいということです...それがコンテンツであるかhtmlタグであるかに関係なく。間違っていたら教えてください...

デモ フィドルを作成しましたので、ご覧ください。http://jsfiddle.net/dineshswami/YpYWY/1/

更新されたフィドル: http://jsfiddle.net/dineshswami/YpYWY/3/

HTML:

<p><a href="x">...ABC...</a></p>


<fieldset>...</fieldset>
<font title="...">...</font>
sometext without any tag<br>
<a href="...">...</a>
//[0..N] more tags

<p><a href="x+1">...ABC...</a></p>

Jクエリ:

$("p").contents().unwrap();    

出力:

<a href="x">...ABC...</a>


    <fieldset>...</fieldset>
    <font title="...">...</font>
    sometext without any tag<br>
    <a href="...">...</a>
    //[0..N] more tags

    <a href="x+1">...ABC...</a>
于 2012-12-16T09:00:17.070 に答える