1

チェックボックスのあるツリーがあり、そのIDにはアイテムのキーと値としての値があります。

<input type="checkbox" name="list_code[4]" id="list_code[4]" value="AG12345678" checked="checked">

ユーザーがツリー要素を選択すると、次の方法でそれらにアクセスできます

$('input[name^="list_code"]').each(function() {
    if ($(this).attr('checked')) 
        list_code = $(this).val();
});

値を取得することはできますが、この場合はlist_code[4]からのAG12345678キー値も取得する必要があります。4どうすればその値にアクセスできますか?

4

3 に答える 3

3
var n = this.id.slice(this.id.indexOf('[') + 1, this.id.indexOf(']'));

また...

var n = this.id.replace(/\D/g, '');

また...

var n = (this.id.match(/\d+/) || [])[0];

または他の不要な番号がある可能性がある場合...

var n = (this.id.match(/\[(\d+)\]/) || [])[1];

または、ソースを制御する場合、data-将来のHTML5サポートに属性を使用することをお勧めします...

<input type="checkbox" data-number="4" name="list_code[4]" id="list_code[4]" value="AG12345678" checked="checked">

...次に、HTML5ブラウザーでは、次のことができます...

this.data.number;

...またはレガシーサポートの場合は、次のことができます...

this.getAttribute('data-number');
于 2012-04-17T18:45:02.913 に答える
2

これとともに:

this.getAttribute("id").split(/\[|\]/)[1];

説明:

  • this.getAttribute("id")IDを取得します"list_code[4]"
  • split(/\[|\]/)に分割します["list_code","4",""]
  • [1]インデックスの要素を取り1ます4
于 2012-04-17T18:46:13.727 に答える
1

試す:

$('input[name^="list_code"]').each(function() {
    if ($(this).is(':checked')) 
        list_code = $(this).val();
        key = parseInt($(this).attr('name').replace(/[^0-9]/g,''));
});

フィールド名の属性にインデックス外の番号がある場合は、次のようにします。

        key = parseInt($(this).attr('name').split('[')[1].replace(/[^0-9]/g,''));
于 2012-04-17T18:50:37.120 に答える