質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.33%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

689閲覧

jsで並び替えをして、HTMLを出力したい

yuki55snowman

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2023/05/10 05:23

編集2023/05/10 06:15

実現したいこと

ソート番号を使用して、ソートしたい。

ここに実現したいことを箇条書きで書いてください。

  • xmlからデータを取得する
  • ソート番号を使用して、ソートする
  • htmlで出力する

該当のソースコード

XML形式

1<?xml version="1.0" encoding="UTF-8"?> 2<result> 3 4<template:block id="portfolio"> 5 <item> 6 <id>${ID}</id> 7 <title>建物名</title> 8 <number>ID</number> 9 <sort_number>ソート番号</sort_number> 10 <type>用途</type> 11 <type_number>用途ID</type_number> 12 <area>地域</area> 13 <area_number>地域ID</area_number> 14 <address>詳細_所在地</address> 15 <position>所在地</position> 16 <img>画像イメージのパス</img> 17 </item> 18</template:block> 19</result>

イメージ説明

画面にはこんな形で出力されるのですが、この並び順を変更したいと考えています。

js

1test() 2 3function test() { 4 $.ajax({ 5 url: "test.xml", 6 success: function(result) { 7 // xmlデータからほしいデータをfindで探し処理 8 $(result).find("result item").each(function(index, item) { 9 // 要素ごとにタグを作成 10 var type_number = $(item).find('type_number').text(); 11 12 if (type_number === "1") { 13 //変数取得 14 var sort_number = $(item).find("sort_number").text(); 15 var area_number = $(item).find("area_number").text(); 16 var picture = $(item).find('img').text(); 17 var title = $(item).find('title').text(); 18 19   //並び替え 処理考え中 20 var sample = []; 21 var array = [] 22 sample = [sort_number,area_number,picture,title] 23 var array = sample 24 // sample.sort((a, b) => { 25 // return a.sort_number < b.sort_number ? -1 : 1; 26 // }); 27 28 $(function() { 29 var inHtml = "<li class='list_view list_area" + $(item).find("area_number").text() + "'>" 30 + "<a href='/ja/test/detail.html?id=" + $(item).find("id").text() + "'>" 31 + "<span class='test-type-list__img' style='background-image: url(&quot;" + picture + "&quot;)'></span>" 32 + "<p>" + $(item).find('title').text() + "</p>" 33 + "</a>" + 34 + "</li>"; 35 $('ul.portfolio-type-1.portfolio-type-1').append($(inHtml)); 36 }); 37 } 38 else if (type_number === "2") { 39 //同じ処理 40 } 41 else if (type_number === "3") { 42 //同じ処理 43 } 44 }); 45 //console.log(sample) 46 }, 47 error: function(data) { 48 console.log(data); 49 } 50 }); 51}

html

1<ul class="test-type-list tst-type-1"> 2 <!-- liをjsで追加している --> 3</ul>

調査したこと・試したこと
試行錯誤状態のため、こうできればすら見えていません。

最終的には、
[array
[ソート番号,XXX,XXXX,XXXXX,XXXXXX],
[ソート番号,XXX,XXXX,XXXXX,XXXXXX],
[ソート番号,XXX,XXXX,XXXXX,XXXXXX],
]
この形で配列をと整えれば、並び替えが可能と考えています。

課題
xmlをループさせるため、HTMLの出力が外になる。
うまく配列が作成できない。ばらばらの配列になってします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2023/05/10 05:50

圧倒的に情報が足りないと思います そもそもXMLのサンプルがないのでソート番号の仕様もなにも質問者さんにしかわかりません
m.ts10806

2023/05/10 07:18 編集

項目名だけ入ってるものよりサンプルでも実際に近いデータが入ってるもののほうが良いです。 あと、現状起きてる問題を、文章説明ではなく結果が見えるような情報を提示してください。 「うまくいかない」「バラバラ」では主観表現となり結果までは見えません。
guest

回答1

0

自己解決

自己解決のため、問題なし

投稿2023/05/10 08:28

編集2023/05/10 08:31
yuki55snowman

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.33%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問