5

URL の Get 変数を解析する必要があります。document.location の jQuery オブジェクトを作成し、attr 関数を使用して検索属性を取得し、すべての変数を取得しました。しかし、分割関数を使用し、その後 each() を使用すると、オブジェクトにメソッド each がないというエラーが表示されます。

TypeError: Object [object Array] has no method 'each'  

コードは次のとおりです。

 $(document.location).attr('search').split('&').each()

また、最初の関数で検索プロパティを使用しようとしましたが、許可されません。つまり、$(document.location.search) でエラーが発生します。

また、分割関数によって返されるもののデータ型を確認しました。コンソールには、それがオブジェクトであると表示されます。また、配列である必要があることにも混乱しています。

PS:上記のコードはすべてjQueryのdocument.ready関数に入ります

4

4 に答える 4

7

オブジェクトから jQuery オブジェクトを作成してdocument.locationも意味がありません。これは DOM 要素ではないためです。

searchオブジェクトからプロパティを取得し、要素ではなく配列をループしているため、$.each代わりにメソッドを使用します。.each

$.each(document.location.search.split('&'), function(){
  ...
});
于 2013-04-05T12:30:55.727 に答える
5

これを試して:

$.each($(document.location).attr('search').split('&'), function (index, value) {
    alert(index + ': ' + value);
});

jQuery.each()メソッドを使用して jQuery オブジェクトを反復処理し、一致した要素ごとに関数を実行します。

しかし、から得られるの$(document.location).attr('search').split('&')は JavaScript 配列であり、明らかにメソッド「each」がありません。これがエラーが発生する理由です。

$.each()jQuery で配列をループするには、上記のようなメソッドを使用する必要があります。

于 2013-04-05T12:29:57.780 に答える
-1

jQuery のeach()関数は、jQuery から直接、単独で呼び出されることを意図しています。JavaScript配列は、そのように構築されていないため、関数として持っていません.

私はあなたがこれを探していると思います:

$.each($(document.location).attr('search').split('&'), function (index, value) {
    // stuff
});
于 2013-04-05T12:30:19.203 に答える