36

Jqueryで要素を選択する際にいくつか問題があります。要素を選択しようとすると:

var images = $("#htmlChunk").find("img.Thumb");
console.log(images);

私はこの結果を得る:

>[<img>, <img>, prevObject: e.fn.e.init[1], context: #document, selector: "#htmlChunk img.Thumb"]

この返される結果の原因は何ですか?私はいくつかのことを試しましたが、それでも私が望む結果が得られませんでした。

競合を避けるためにコードをラップしようとしました。オブジェクトをクリアしようとしました

これは私がウェブ上で見つけたものでした。 http://drupal.org/node/272557

var images = $("#htmlChunk")['prevObject'].find("img.Thumb");

私は今オブジェクトを返しますが、それも私が望んでいたものではありません。

私はこのプロジェクトに飛び込んだので、スクリプトについてはよく知られていません。jsファイルでprevObjectを検索しようとしましたが、見つかりませんでした。

問題は、他のjavascriptファイルに干渉していることだと思います。何か案は?方向?

編集:htmlChunk:

<div id="htmlChunk">
    <div class="ngg-albumoverview">
        <div class="ngg-album-compact">
            <div class="ngg-album-compactbox">
                <div class="ngg-album-link">
                    <a class="Link" href="http://........">
                        <img class="Thumb" alt="Personeelsevent" src="http://.........">
                    </a>
                </div>
            </div>
            <h4><a class="ngg-album-desc" title="Personeelsevent" href="http://.....">Personeelsevent</a></h4>
            <p><a href="http:///.......">bekijk dit album</a></p>
        </div>
    </div>
</div>
4

4 に答える 4

52

変数はjQueryimagesオブジェクトであるため、ブラウザーのコンソールに出力が表示されているのはそのオブジェクトのようです。特定の出力は、への呼び出し.find()が実際にはどの要素とも一致していないことを示しています。このjsFiddle(Chrome)からの2つのコンソール出力を比較します。

.find()を絞り込んだり変更したりするjQuery関数(、など)を呼び出すと.filter()、既存のjQueryオブジェクトの一致する要素のリストには、その関数が実行される前の状態への参照も含まれます。あなたはとして見ていprevObjectます。.end()これは、関数を呼び出したときに元に戻すために使用するものです。

コードを分解してみましょう:

var images = $(".htmlChunk").find("img.Thumb");

最初の部分---$(".htmlChunk")クラスを持つすべての要素に一致しhtmlChunk、それらの要素を含むjQueryオブジェクトを返します。

次に、要素であり、それらにクラスがあるという基準を満たす、.find("img.Thumb")すでに一致した要素(クラスを持つ要素)の子孫であるすべての要素を検索するを呼び出します。htmlChunk<img>Thumb

単一のセレクターを使用して要素を取得すると、より良い結果が得られる可能性があります。

var images = $(".htmlChunk img.Thumb");

それらを含むjQueryオブジェクトではなく、実際のDOM要素の配列が必要な場合は、次の.get()関数を使用できます。

var elementArray = images.get();

HTMLを含めるための質問の編集に対処するには、次のようにします。

$(".htmlChunk")最初の要素を取得するために使用しています。ただし、その<div>要素にはクラスではなくIDhtmlChunkが付いているため、コードは必要な要素を選択しません。次のものを使用することをお勧めします。

var images = $("#htmlChunk").find("img.Thumb");

セレクターで#はなくに注意してください。.

于 2012-11-09T11:17:51.010 に答える
3

クラス「.htmlChunk」を選択しようとしているようですが、存在しません。代わりに ID で選択してみてください。

var images = $("#htmlChunk").find("img.Thumb");
于 2012-11-09T11:23:17.640 に答える
-1

これを試して。

   function getId() {
             var ids = $(".htmlChunk").find("img.thumb"); //it wiill return array of image
             var sid = $(".htmlChunk").find("img#img2"); //it wiill return wat image you want
             $(".htmlChunk span").text("arrays:" + ids[0] + "  :  " + ids[1] +
             "simple imge:" + sid);
         }


    <input id="Button1" type="button" value="button" onclick= "getId();"/>


  <div class="htmlChunk">
        <img alt="" src="img/Desert.jpg" class="thumb" id="img1" />
       <img alt="" src="img/Chrysanthemum.jpg" class="thumb" id="img2" />
        <span></span>
   </div>
于 2012-11-09T11:26:59.507 に答える
-2

prevObject は結果の単なるプロパティではありませんか?

「結果には次のprevObjectがあります->」と理解できます

于 2016-04-22T08:59:23.817 に答える