0

jQueryを使用して、特定のプレフィックスで始まるすべてのアンカータグを選択し、それぞれに対して関数を呼び出しています。

$('a[id^="lblMyLabel"]').each(function() {
        doSomething(this.id);
});

そしてdoSomethingの内部で、いくつかのデータをフェッチするためにajax呼び出しを行います。jQueryがページを上から下にスキャンして、lblMyLabelで始まるすべてのアンカータグを取得し、その順序でそれらを処理すると想定していましたが、順序はランダムのようです。この選択がどのように行われるか知っている人はいますか?

編集:だから私はあなたたちが上から下にアイテムを選ぶことは大丈夫だということに同意します。しかし、ajax呼び出しに応答するWebMethodにブレークポイントを設定すると、IDがその順序で取得されません。その順序はどのように決定されますか?

4

3 に答える 3

4

この場合、最新のブラウザでは、jQueryは

document.querySelectorAll('a[id^="lblMyLabel"]')

ブラウザに作業を許可します。

.prevのようなメソッド以外のすべての場合、jqueryはドキュメントに表示される順序で要素を返します。

https://developer.mozilla.org/en-US/docs/DOM/Document.querySelectorAll

于 2012-12-17T18:10:37.433 に答える
2

このように作成されたjQueryオブジェクト内のDOM要素の順序(したがって.each()呼び出される順序)は、ドキュメント内で上から下に順番に並んでいますが、一度に多数のajax呼び出しを実行している場合、それらからの応答はajax呼び出しは、各応答のサーバーでの処理時間に依存するため、特定の順序で保証されるわけではありません。

ajax応答を順番に処理する場合は、それぞれに何らかのシーケンスIDを指定し、それらをすべてキューに入れて、前の項目を処理した後でのみ項目Nを処理する必要があります。これを行う最も簡単な方法は、すべての結果を元のシーケンス番号に従って配列にキューに入れ、すべての結果が完了したら順番に処理することです。以前のすべてのものが到着して処理されるとすぐにNを処理する、より複雑な方法があります。

于 2012-12-17T18:12:20.820 に答える
0

次の例のように、CSS IDを選択するときは#文字を使用する必要があります。

var messagePara = $('#message');

于 2012-12-17T18:19:40.840 に答える