OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

jQueryでxmlの異なるタグ要素を取得したい。

  • すぐに回答を!
  • 質問No.7069794
  • 閲覧数502
  • ありがとう数3
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 94% (69/73)

jQueryを最近勉強したての者です。
詳しい方、どうか教えて下さい。

HTMLにxmlのデータを読み込ませようとしています。

概略をお話しすると、
htmlファイルによって、xmlの別々の要素を取得したいのです。
やりたいメソッドは同じです。
別々の要素の中のデータによって、imgの表示/非表示を切り替えたいのです。

問題は、対象となるhtmlファイルが複数あり
そのhtmlファイルによって、参照するxmlのタグが異なる事なんです。

xmlは、以下のように<shopdata>をルートノードとし、以下のような感じです。

---------------------
<?xml version="1.0" encoding="utf-8"?>
<shopdata>
<item>
<name1>0</name1>
<name2>1</name2>
<name3>0</name3>
</item>
</shopdata>
---------------------

<name*>~</name*>
の中のデータは、0もしくは1なのですが
0の時はimgを表示
1の時はimgを非表示させようと考えています。


ただ<name1><name2><name3> とタグ名がバラバラなんです。
※おしりの数字が違うだけで、規則的ではあります。

ちなみにhtmlは複数あって
 a.htmlの時は→xmlの<name1>を参照
 b.htmlの時は→xmlの<name2>を参照
 c.htmlの時は→xmlの<name3>を参照
という感じです。

※htmlファイル名は特に規則的ではなく、いろいろなファイル名がついています。。。

最初、考えたのは、
htmlのどこかに、id="1"と入れて、idが1の時は、<name1>の要素を取得し、
htmlのどこかに、id="2"と入れて、idが2の時は、<name2>の要素を取得し…
っていうことを考えたのですが、それもどのように書いたら良いのかが分からないんです。

そもそも、そういった事は可能なのでしょうか?
ちなみのhtmlのbodyタグ自体がテンプレートでできているので、
idをどこかにふるとしたら、head内とかになるのしょうか?

それぞれ、ボタンの表示は、
if文を使って、show(),hide()メソッドを使うとは思うのですが…

詳しくコードを教えていただけたら、助かります。


どうか、宜しくお願いいたします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 61% (1594/2576)

使用条件がよくわかってませんけれど、
>ただ<name1><name2><name3> とタグ名がバラバラなんです。
読込む対象は全て同じxmlに固定されていると考えてよいのですよね?

>htmlのどこかに、id="1"と入れて、idが1の時は、<name1>の要素を取得し、~

>ちなみのhtmlのbodyタグ自体がテンプレートでできているので、
>idをどこかにふるとしたら、head内とかになるのしょうか?
スクリプト部分はファイルごとに違う設定が可能なのでしょうか?

そうであれば、読込む部分は関数にしておいて
 getAjax("name1"); とか getAjax("name2");
のように指定したい部分だけを、それぞれのhtml内に記載して呼び出すようにしておけばよいのではないでしょうか。
(残りの部分は共通にしておいて、html内にでも外部ファイルにでも…)

あるいは、その部分も書き分けるのが嫌なのであれば、urlのファイル名部分とタグ名の対応表を用意しておいて、参照したいタグ名を求められるようにすれば、共通のスクリプトにすることも可能かと。
例えば
 var loc = window.location.href.match(/\/([^/]+)\.html$/);
 var name = loc?{"a":"name1", "b":"name2", "c":"name3"}[loc[1]]:null;
 alert(name);
 //(対応がない場合はundefined又はnull)
みたいな方法で。


…あ!(↑)特段 jqueryにはなってませんけど。
お礼コメント
mc0816

お礼率 94% (69/73)

アドバイスありがとうございます。
また、お礼が遅くなってしまい、すみません。

HTMLに対して、jsファイルは一つです。
また、それぞれのHTMLのスクリプト部分はファイルごとに違う設定が可能です。

htmlの方にgetAjaxで呼び出すんですね。
ぜひ、参考にさせていただいて、いろいろやってみますね。

でもコードを書いていただいて
もっともっと勉強しないとな…って実感です。。


お忙しいところ、大変ありがとうございました。
投稿日時 - 2011-10-16 18:49:36
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ