3

別のページから次のシリアル化されたデータ文字列があります(一部のコンテンツはチェックボックスからのものであるため、「ブランド」が繰り返されます)。

brand=Ford&brand=Dodge&brand=Mazda&year=2013&type=compact

そして、divタグに「results」のIDを入力したいと思います。

<div id="results">    
    <div id="brand"></div>    
    <div id="year"></div>    
    <div id="type"></div>    
</div>

私は現在、このコードを使用してデータをループしています:

$.each(SelectionData.split('&'), function (index, elem) {    
    var vals = elem.split('=');    
    $('#' + vals[0]).text(decodeURIComponent(vals[1].replace(/\+/g, ' ')));    
});

フォームにチェックボックスを追加するまでは正常に機能していました。これで、名前がここに表示されているものと同じである場合にのみ、文字列の最後の値を表示できます。

これが私たちが今持っているものです

<div id="results">
    <div id="brand">Mazda</div>    
    <div id="year">2013</div>    
    <div id="type">compact</div>    
</div>    

これが私たちが探しているものです:

<div id="results">
    <div id="brand">Ford,Dodge,Mazda</div>    
    <div id="year">2013</div>    
    <div id="type">compact</div>    
</div>
4

1 に答える 1

5

呼び出されたdiv内で結果をフォーマットする理由がわかりませんresultsが、コードはuriパラメーター名の名前と同じIDを持つ要素のテキストを変更しようとします。

とにかく、私はあなたが何をしたいのか理解したと思います。 作業デモ

HTML:

<div id="brand"></div>
<div id="year"></div>
<div id="type"></div>

コード:

var SelectionData = 'brand=Ford&brand=Dodge&brand=Mazda&year=2013&type=compact';

$.each(SelectionData.split('&'), function (index, elem) {
    var vals = elem.split('=');
    var $div = $("#"+vals[0]);
    var separator = '';
    if ($div.html().length > 0) {
        separator = ', ';
    }
    $div.html($div.html() + separator + decodeURIComponent(vals[1].replace(/\+/g, '  ')));
});
于 2013-01-15T17:06:36.257 に答える