3

タイトルに何を言うかをカプセル化するのは決して簡単ではありません...しかし、ここに行きます...

私はおそらく、JQueryの明白な、そしておそらく組み込みの関数を真っ直ぐ過ぎて見ていることに気づきます。

私がやろうとしていることは:

  1. XMLファイル(ローカルまたはサーバー経由)にノード名を含むノードを作成します。つまり、HTMLのテキストボックスのID名として使用します。

  2. 次に、JQuery AJAX呼び出しを介して、XMLを解析し、ノードの値を同じノード名のHTMLID要素の値にマップします...

a)おそらくプラグイン、b)おそらくより良い概念があることにすぐに気付きますが、基本的なHTML要素にマップするだけで済みます。実際、コンボボックス、ラジオボタンなど、より高度な機能を追加することができます。 ..。。

たどる道のアイデアはありますか?または、これを行うための単純なJQueryプラグインがある場合はどうなりますか?

PS:私はテンプレート自体には興味がありませんでした。なぜなら、jTemplatesの力を理解していても、それほど複雑で柔軟なものは本当に必要ないからです...

前もって感謝します!!

4

4 に答える 4

3

これで、xmlの解析を開始できます。

var xml = '<root><text1>i am in text1</text1><text2>i am in text2</text2></root>';
$(xml)
      .children()
      .each(
            function(){
                       alert(this.nodeName + ':' + $(this).text());
                      }
           );

nodeNameは、htmlのIDとして使用するxmlのタグ名です..jquery textメソッドはxmlノードの値を返します..(テキストのみ)

xmlファイルをロードするには

$.get( 
      '/path/to/filename.xml', 
      function(){ 
                 /*runs on success, do the parsing here*/
                },
      'xml'
     ); 
于 2010-01-26T01:33:00.350 に答える
2

これを試して:

$.get ('/path/to/xml', function (data)
{
    $(data).children ().each (function ()
    {
        $('#' + this.nodeName).val ($(this).text());
    });
})

XMLでのネストのレベルは1つだけであると想定しています。

于 2010-01-26T02:27:10.243 に答える
0

実際に素晴らしい入力、助けてくれてありがとう..それは私を動かしました。

繰り返しになりますが、テンプレートエンジンがあることに気付きましたが、次のステップは、コンボボックス、ラジオボタンなどにデータを入力できるように、もう少し複雑にすることです。DHTMLXを使用しているため、HTMLの基本です。派手なことをするためのコンポーネント..主に私が見つけたjavascriptウィジェットを最も理解しやすいように見えるので..ExtJSがより良いdocco、より簡単なAPIなどに追いついていることを私は知っています。

要約すると、私は次のようになります。

  1. システム全体で同じ名前のデータベース内のフィールド。したがって、データベースフィールドが名と呼ばれる場合、HTML要素は名と呼ばれます。
  2. データベースから作成するXMLに、テキスト、ラジオ、コンボなどの「要素タイプ」などの属性を追加するので、値を入力する方法を知っています。
  3. 次に、javascript/JQueryはデータを表示するために必要なことを実行できます。

このすべての主な理由は、私のパートナーがページ/レイアウトを純粋なHTMLとして設計でき、XSLT /テンプレートについて心配する必要がないことです...そして、単純なデータが入力されます...

私はそこにいくつかの「エンジン/プラグイン」があるに違いないと確信しています..しかし今のところ私はそれに取り組みます...

再度、感謝します...

于 2010-01-26T03:13:45.313 に答える
0
$(xml).find('foo').each( function() {
  alert (this.text());
});
于 2010-01-26T03:44:56.517 に答える