2011-09-14 10 views
2

Jqueryでデータの配列を置換する方法を教えてください。配列の値をループに代入する

私はこのような外部ファイル内のデータの配列を持っている:HTMLファイルで

var prod = []; 
prod[0] = ['one', 'two', 'three']; 
prod[1] = ['four', 'five', 'six']; 
... 

は私が

<tr> 
    <td class="prodname">prod[4][1]</td> 
    <td class="prodnum">prod[4][2]</td> 
    <td class="mprice_el">prod[4][3]</td> 
</tr> 

や配列からデータを代用するために必要なコール機能fill();で貼り付けます。

私はこのようにしてみてください:

function fill(){ 
    var prodname; 
    var prodnum; 
    var prodprice; 
    $('.prodname').each(function(){ 
     for (var i = 0; i < prod.length; i++) { 
      $(this).html(prodname); 
     } 
    } 
} 

しかし、HTMLからIDを取得し、配列と比較する方法がわかりません。

+2

ちょうどサイドノート:あなたがしている場合これを使用して、検索エンジン(Googleなど)によってインデックスを作成する必要があるウェブサイトでは、商品を読むことができなくなります。代わりにサーバー側の言語を使用するようにアドバイスします。 – jeffreydev

+2

HTMLを ''のように設定してみませんか? – Shef

+1

@jeffreydev:私は正しいことがサーバー側を行うことになることに同意しますが、GoogleがJavaScriptを使用するページをインデックス化する価値はあります。 – Shef

答えて

1

私が正しく理解していれば、あなたは(あなたはおそらく、結果を確認したいと思うが)このような何かを探している:

$('.prodname').text(function(i, t){ 
    var m = t.match(/^prod\[(\d+)\]\[(\d+)\]$/); 
    return prod[m[1]][m[2]]; 
}); 

例:http://jsbin.com/anusoj/3

+0

もう一つのオプションは '$( '。prodname')です。テキスト(function(i、t){return eval(t);});'しかし、警告を出します:* "eval is evil" *。 – Kobi

+0

ありがとうございました!うまく! – skywind

+0

しかし、それはコンソールでエラーが表示されます: 'Uncaught TypeError: 'null'のプロパティ '1'を読み取れません。どうすれば改善できますか? – skywind

関連する問題