下記サンプルに、ページング処理を追加したいのですが、
どうすればよいでしょうか?
http://www.atmarkit.co.jp/fdotnet/jqueryref/08aj …
No.6ベストアンサー
- 回答日時:
IE8だと、「条件コンパイルは中止されます」とエラー表示になってしまいます。
=>@マークが条件コンパイルのマークアップと判断されてるみたいです。
その場しのぎで対処しました。
var ResultSets = [];
$.each(data,function(index,value){
ResultSets.push(value);
});
var hits= parseInt(ResultSets[0].totalResultsAvailable);
var currentItem = parseInt(ResultSets[0].firstResultPosition);
修正ありがとうございました。
おかげで、IE8, Google Chromeでも、無事、動作確認できました。
また、今回は、この質問のために、貴重なお時間を割いていただき、
ホントにありがとうございました。
なお、コードの中身等については、これから理解していきたいと思っていますので、
出来れば、リンク先とか、デモページとか、もうしばらくこのままの状態でいただけると、ありがたいです。
また、別室サイトの方も拝見しましたが、色々、サンプルを掲載されているようなので、
参考にさせていただきます。
ではー。
No.5
- 回答日時:
おそらく、
data.@attributes.totalResultsAvailable
とか
data.@attributes.firstResultPosition
の@にIEが反応してしまっているのかなあ?
配列index番号アクセスにすればよいかも、試してみます。
No.4
- 回答日時:
サンプルが長くなっちゃたんで、しきりなおして、Object施工を図り、解り易いソースに書き直してみたぞ。
例によって、ここ↓にアップした。
https://gist.github.com/767710
この回答への補足
「回答ありがとうございます」&「スクリプトを作成いただき、大変恐縮です」
早速、デモページを拝見させていただいたのですが、
IE8だと、「条件コンパイルは中止されます」とエラー表示になってしまいます。
(ちなみに、FireFoxでは、ちゃんと正常にページングされてました)
これは、どのように対処したらよいでしょうか?
No.3
- 回答日時:
続き
function dataout(data){
$('#result').empty();
var hits= parseInt(data.@attributes.totalResultsAvailable);
var itemPerPage = 10;
var pages=(hits % itemPerPage==0)?parseInt(hits/itemPerPage):parseInt(hits/itemPerPage)+1;
var currentItem = parseInt(data.@attributes.firstResultPosition);
var currentPage =parseInt(currentItem/itemPerPage);
$('#result').append('<hr><span><検索結果> ' + hits +'件</span>');
//Page Navigation 書き出し部
var nextguide;
if (pages<=10){
var pages=Math.min(
(hits % itemPerPage==0)?
parseInt(hits/itemPerPage):
parseInt(hits/itemPerPage)+1,10);
nextguide = NaviMenuAdd(pageset,pages,itemPerPage);
}else{
nextguide = NaviMenuAdd(pageset,10,itemPerPage);
var nextp =$(document.createElement("a"));
nextp.attr({href:"javascript:void(0);"});
nextp.text(">>");
nextp.bind("click",function(event){
event.preventDefault();
pageset=pageset+1;
Go_Search(pageset*10*itemPerPage+1);
});
nextguide.append(nextp);
if (pageset>0){
var prevp =$(document.createElement("a"));
prevp.attr({href:"javascript:void(0);"});
prevp.text("<<");
prevp.bind("click",function(event){
event.preventDefault();
pageset=pageset-1;
Go_Search(pageset*10*itemPerPage+1);
});
nextguide.prepend(prevp);
}
}
$('#result').append(nextguide);
$('#result > span > a').css({margin:"5px",color:"black",background:"#cff"});
if (pageset>0){
$('#result > span > a:eq('+ (currentPage%10+1) + ')').css("background","yellow");
}else{
$('#result > span > a:eq('+ currentPage%10 + ')').css("background","yellow");
}
//結果リスト書き出し部
var result = '<ul>';
$.each(data.Result,
function(index,value){
result += "<li><a href='" +
value.Url + "'>" +
value.Title + "</a></li>";
});
result += "</ul>";
$('#result').append(result);
}
});
</script>
</head>
<body>
<form>
<input type="text" id="keywd" />
<button type="button" id="btn">検索</button>
<div id="result"></div>
</form>
</body>
</html>
No.2
- 回答日時:
とりあえず、ベタコーディングのサンプル
※全角空白は半角空白に直してね!
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Yahoo Blog Search API Test</title>
<style type="text/css"></style>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.4");</script>
<script type="text/javascript">
$(function(){
var pageset = 0
$("#btn").click(function(){
//myNavi.pageset = 0;
Go_Search(1);
});
function Go_Search(start){
$.getJSON('http://search.yahooapis.jp/BlogSearchService/V1/ …
{appid:"ここにあなたのYahooAplivationidを入れて",
output:"json",
query: $('#keywd').val(),
results:10,
start:start
},dataout);
}
function NaviMenuAdd(pageset,pages,itemPerPage){
var start=pageset*10;
pages=pages+start;
var nextguide=$(document.createElement("span"));
for(var i=start;i<pages;i++){
var startItem = i*itemPerPage +1;
var nexta =$(document.createElement("a"));
nexta.attr({href:"javascript:void(0);"});
nexta.text((i+1)+"頁目");
nexta.bind("click",{start:startItem},function(event){
event.preventDefault();
Go_Search(event.data.start);
});
nextguide.append(nexta);
}
return nextguide;
}
回答欄が足りないので続きます。
No.1
- 回答日時:
サンプルだと「Yahoo!ブログ検索API」サービスを使ってますけど、このAPIでのページング処理だと、ページング単位をn件(最大50件ですね)
resultsにnをセット、startに 1 + n×(ページ数-1)をセット(最大1000まで)して
毎回処理結果を得ていけばよいですね。
リクエストする度にページングナビゲーション部分をDOM関数で、動的に作っていって、
現在どのページかわかるようにしてあげればよろしいかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) MacとWindows Google検索した時のURL表示の違いについて 1 2022/11/17 10:38
- PHP PHP ページング データベース 1 2022/06/16 10:30
- 数学 場合の数、確率 45 (浜松医科大学) 1 2023/07/29 13:52
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- 数学 ハイネボレルの被覆定理、内田伏一著 「集合と位相」定理22.1 1 2022/07/07 10:49
- 数学 線形代数の対称行列についての問題がわからないです。 2 2023/01/08 14:59
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/03/31 12:46
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryのload()を使用して外部...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
Javaで避けるゲームを作ってい...
-
【JavaScript】数当てゲームを...
-
C#で、ContextMenuStripに動的...
-
javaScript textareaの一行あた...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
javascriptにお詳しい方に質問...
-
商品コードを入力で、商品名、...
-
JavaScriptで決まった「時刻」...
-
ホームページの最終更新日を他...
-
C# 演算 奇数と偶数 表現の仕方
-
特定のclassを表示、非表示にする
-
なぜmatchメソッドがエラーにな...
-
javascriptでカウントダウンタ...
-
ASP.NET MVCでObjectをjsに渡す
-
idを使わずにonclickで自身の要...
-
Linux バイナリ実行できない "...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報