2016-05-10 3 views
0

この最初のjQueryが動作します。 #main_textのIDに別のhtmlページの特定のセクションを読み込みます。jQueryで配列を.loadにプッシュできますか?

$(function() { 
    $('[id^="nav_"]').on("click", function() { 
    var letter = this.id.split('_')[1]; 
    $("#main_text").load("page" + letter + ".html #main_text p,h2,h3,span #hidden"); 
    }); 
}); 

ここで、#main_textに複数のhtmlファイルを読み込みたいとします。そこで私はそれらを配列にプッシュし、その配列をロードしようとしました。動いていない。これも可能ですか?

$(document).ready(function() { 
    var array = []; 
    array.push('page_mark1.html'); 
    array.push('page_mark2.html'); 
     $('#mark').on("click", function() { 

     $("#main_text").load('array'); 
     }); 
}); 
+1

ないクリスは、一種の混乱しています。あなたは単にHTMLページをそのようにロードすることはできません。 – LoreV

+0

ダン。私は1ページに複数のページからdivのコンテンツを取得しようとしています。それを行う方法はありますか?複数のページではなく、あるページから別のページにdivコンテンツを引き出すことができます。 – Chris

答えて

1

loadメソッドは、URLの配列を受け入れません。また、配列を渡したい場合は、array(文字列)ではなく"array"を関数に渡す必要があります。

あなたはloadメソッドの代わりに$.get機能を使用することができます。

// create an array of deferred objects (array of Ajax deferreds) 
function getDef(urls) { 
    return urls.map(function(url) { return $.get(url) }); 
} 

// Pass the array to $.when 
// the callback is called when all the requests are complete 
$.when.apply($, getDef(array)) 
.then(function() { 
     // concatenate the strings based on the unknown length of arguments 
     // `[].slice.call(arguments)` converts the special 
     // `arguments` object into a regular array 
     var allContents = [].slice.call(arguments).join(''); 
     $("#main_text").html(allContents); 
    }); 

をまた、jQueryの関数を定義することができます:あなたがやろうとしているもの

$.fn.loadMany = function(urls) { 
    var $this = this; 
    urls = urls.map(function(url) { return $.get(url) }); 
    $.when.apply($, urls) 
    .then(function() { 
     $this.html([].slice.call(arguments)); 
    }); 
    return $this; 
} 

$("#main_text").loadMany(array); 
+0

私は私の頭の中にいると思う。私はこれらのいずれかを働かせることはできません。私はonclickイベントがどこにあるかわかりません。 – Chris

+0

@Chrisコードにクリックハンドラはありません。 '$()'呼び出しの前にjQuery関数の定義( '$ .fn.loadMany = function(urls){...' lines)を置き、 'load'呼び出しを' loadAll'に置き換えてください。 – undefined

+0

私はこれを一緒に縫い合わせるためにしばらくの間、混乱しなければならないでしょう。あなたは1つのjqueryの本を読んで、あなたがこのことをすることができると思う。 – Chris

関連する問題