1

jqueryを使用して、divレイヤー内のすべての値の入力フィールドで文字列を形成する必要があります

<div id="selection">
   <input class="field" id="1" type="hidden" value="A"/>
   <input class="field" id="2" type="hidden" value="B"/>
   <input class="field" id="3" type="hidden" value="C"/>
   <input class="field" id="4" type="hidden" value="D"/>
</div>

<input type="button" id="button" value="generate"/>


この形式で:

id[1]=val[A]&id[2]=val[b]...so on


jquery:

 $(function() {
      $('#button').click(function() {
         //function goes here...


      });
    });
4

4 に答える 4

1

nameの代わりに (または追加で)使用する場合id:

<input class="field" name="1" type="hidden" value="A"/>
<input class="field" name="2" type="hidden" value="B"/>
<input class="field" name="3" type="hidden" value="C"/>
<input class="field" name="4" type="hidden" value="D"/>

あなたが使用することができますserialize:

$('#button').click(function() {
   alert($('#selection input').serialize());
});

あなたに与える

1=A&2=B&3=C&4=D

本当に構造が必要な場合は、要素に名前などid[x]を付けることができます。id[1]id[2]

編集:ああ、どういうわけか私はあなたが望むことを見落としてval[x]いました. これはserialize、実際にval[x]フィールドに値を入力した場合にのみ可能です。しかし、なぜこのような難読化された構造が必要なのでしょうか?


ところで。type="button"あなたのボタンが欠けています。

于 2011-02-23T10:38:04.303 に答える
1

指定された正確な出力を提供し、欠落している属性を適切に処理する別のソリューション:

jsFiddle で実際の動作を確認してください:

$(function() {
    $('#button').click(function() {

        var ResStr  = $('#selection input.field');

        ResStr  = ResStr.map (function () {
            var jThis   = $(this);
            var ID      = jThis.attr ("id");
            if (!ID)    ID  = "null";

            var VAL     = jThis.val ()
            if (!VAL)   VAL  = "null";

            return 'id[' + ID + ']=val[' + VAL + ']';

        } ).get () .join ('&');

        alert (ResStr);

    } );
} );
于 2011-02-23T11:16:28.573 に答える
1
<script>
    $(function() {
        $('#button').click(function() {

            var str = new Array();
            var count = 0;

            $('.field').each(
                function()
                {                   
                    str[count] = 'id['+$(this).attr('id')+']=val['+$(this).val()+']';
                    count++;
                }
            );
            alert(str.join('&'))
        });
    });
</script>
<div id="selection">
   <input class="field" id="1" type="hidden" value="A"/>
   <input class="field" id="2" type="hidden" value="B"/>
   <input class="field" id="3" type="hidden" value="C"/>
   <input class="field" id="4" type="hidden" value="D"/>
</div>
<input id="button" value="generate" type="button"/>
于 2011-02-23T10:46:55.820 に答える
0

これは、div内のすべての入力を組み合わせたすべてのhtmlを返します

var h = '';
var c = 0;
$('#selection input.field').each(function(){
 h += '&id['+(++c)+']=val['+$(this).val()+']';
});
h = h.slice(1);

alert(h);
于 2011-02-23T10:36:34.490 に答える