javascript
  • html
  • dynamic
  • 2012-01-12 11 views 1 likes 
    1

    私はWeb開発の初心者です。ちょうどajaxリクエストと動的コンテンツ作成の学習を始めました。Html動的コンテンツAjaxで

    データの読み込みと解析に問題はありません。

    for(var i=0; i< dicts.length; i++){ 
        var dict = dicts[i]; 
        div_content += "<div id='row' " + 
             "onclick='callJs("+ dict.get('itemId') +");'>" + 
             <b>" + dict.get('name').toUpperCase()+ "</b>&nbsp;"+ 
             dict.get('itemId') + "&nbsp;" + 
             dict.get('active_deals') + " DEAL <br/>" + 
             dict.get('popularity') + ". POPULAR BRAND <br/>" + 
             "<img src='resources/list_break.png' /><br/>" + 
             "</div>"; 
        } 
    

    dict.getは(「アイテムID」)であるロング(26桁)の文字列として:データのロード後、動的Iは(AJAXリクエストの応答)は、複数の行がアレイの各要素を表して作成します。行をクリックすると、 'callJs'関数が起動しますが、奇妙な問題が発生します。私の長い文字列が長い場合、たとえば:

    row id --> 85511111031103236921544356 , 
    in function I see, row id --> 8551111103110325e+25 
    

    私の文字列は長くなる、私は理解できません。パーサが正しい値を返すことも確認しました。私は動的に作成された行のクリック機能は文字列を長く変換すると思います。

    function callJs(itemId) { 
        alert(itemId); // prints 8551111103110325e+25 
        alert(itemId.toString()); // prints 8551111103110325e+25 
    } 
    

    ご覧のとおり、イテレータのループで、私は、各行の品目ID、プリント正しい値(85511111031103236921544356)を印刷:

    enter image description here

    私はどこでも任意の解決策を見つけることができませんでした。私は私の関数に各行のIDを渡したいと思います。

    どれソリューション私はとても喜んで作る..事前に

    おかげで...この行で

    答えて

    3

    "onclick='callJs("+ dict.get('itemId') +");'>" + 
    

    生成されたHTMLは次のようになります。

    "onclick='callJs(11111112222222);'>" 
    

    したがって、callJsは整数の引数で呼び出されています。生成されたこのHTMLになります

    "onclick='callJs(\""+ dict.get('itemId') +"\");'>" + 
    

    :あなたはこのように、このようなものにするために行を変更する必要が

    ここ

    "onclick='callJs("11111112222222");'>" 
    

    は、callJsは、文字列と呼ばれています引数。

    一般に、動的HTMLを生成するときは、形成されたHTMLが正しいことを確認する必要があります。これは、ほとんどの場合、文字列として解釈されるデータの周囲に'"の文字があることを確認し、これらの文字が間違った場所(たとえば、文字列の中央)にならないようにします。

    これに役立つツールがあります。たとえば、firefoxの場合はfirebug、他のブラウザの場合は組み込みツールを参照してください。

    +0

    をあなたはあなたに感謝し、笑 –

    +0

    それは動作しますが、速かったです! – barisatbas

    +0

    私はちょうど引用符が必要な理由を説明し、この答えは不足している引用符を指摘した –

    2

    私は問題があなたの呼び出しをどのように構築するかと思います。ただ、この変更:

    "onclick='callJs('"+ dict.get('itemId') +"');'>" + 
    

    引用符を見(' "+、ここで" ')+

    関連する問題