-1

このコードは有効/正しいですか

var items = $(".items");    // when would items be properly populated, at dom.ready()??
var itemsHrefs = []; // direct JS code

prepareItemsList();  **// direct JS code**

**// could be the case that items array is not populated yet ???**
function prepareItemsList() {
  for ( var i = 0; i < items.length; i++ ) {
    var plElement = items.eq(i);
    itemsHrefs.push (plElement.attr('href'));
  }
}

質問:

  1. アイテム変数が適切に作成されるのはいつですか。私は dom.ready()??
  2. 正しくするには、document.ready ハンドラー内に prepareItemsList() の実行を配置する必要がありますか?

注: 上記の 2. を実行しようとすると、さまざまな問題が発生しました。

4

1 に答える 1

0

DOM で動作するコードをコールバックに配置する必要があり$(document).ready()ます。準備が整う前に DOM を操作しようとすると、コードは適切に (またはまったく) 動作しません。

コードの一部だけをコールバックに残すと混乱することがあるので、通常は jQuery 関連のすべてをコールバックにラップします。

$(document).ready(function() {
    var items_hrefs = $('.items').map(function() {
        return this.href;
    }).get();
});
于 2013-02-11T22:27:49.003 に答える