获取键从输入id jQuery


Get key from input id jQuery

我有一个有几个输入的列表

<input type="hidden" id="elevens_id_ea" value="<?php echo $_GET['elev_id']; ?>" />
<input type="hidden" id="arskursen_ea" value="<?php echo $arskursen; ?>" />
<?php
if ($extraanpassning_hamta['atgard'] == true){ 
    ?>
    <input name="extraanpassning" id="knapp[<?php echo $amnets_id['amne_id']; ?>]" type="button" class="btn-u rounded btn-u-red btn-sm" value="Ja">
    <?php } else { ?>
    <input name="extraanpassning" id="knapp[<?php echo $amnets_id['amne_id']; ?>]" type="button" class="btn-u rounded btn-u-green btn-sm" value="Nej">
<?php } ?>

主要问题是如何"捕获"两个最新输入的值:

id="knapp[<?php echo $amnets_id['amne_id']; ?>]"

如果knapp[4] ->我怎么得到4?

上面的代码是按钮的一部分,当用户按下它(不刷新页面)时,它会改变值。

JS

<script>
$(document).ready(function(){
$('input[type="button"]').click(function(){
    var extraanpassningVal = $(this).attr("value");
    var amne_id_ea = $(this).attr("id");
    var elevens_id_ea = $("#elevens_id_ea").val(); //värdet av elev_id   
    var arskursen_ea = $("#arskursen_ea").val(); //värdet av elev_id       
    $.ajax({
        type: "POST",
        url: "iup_extraanpassning_byta.php",
        data: {extraanpassningType: extraanpassningVal, amne_id_ea: amne_id_ea, elevens_id_ea: elevens_id_ea, arskursen_ea: arskursen_ea},
        success:  function() {
        location.reload();
     }
  })
});
});
</script>
编辑:

主要问题是如何从id为knapp[4]的输入中获取密钥。

如何在knapp[]中获得密钥?

更新(由于用户:SpYk3HH )

<script>
$(document).ready(function(){
$('input[type="button"]').click(function(){
    var key = this.id.replace(/knapp|'[|']/g, ''),  //  <---They key
        extraanpassningVal = $(this).attr("value"),
        amne_id_ea = $(this).attr("id"),
        elevens_id_ea = $("#elevens_id_ea").val(),
        arskursen_ea = $("#arskursen_ea").val();
    if (this.ajax) this.ajax.abort(); //  helps prevent multiple ajaxing (multiclicking)
    this.ajax = $.ajax({
            type: "POST",
            url: "iup_extraanpassning_byta.php",
            data: {extraanpassningType: extraanpassningVal, amne_id_ea: amne_id_ea, elevens_id_ea: elevens_id_ea, arskursen_ea: arskursen_ea},
            success:  function() {
            location.reload();
            }
        })
})
});
</script>

我想我明白了?在JS中调用按钮时需要键?比如:key = this.id.replace(/knapp|'[|']/g, '')

更新,我没有看到

前面的括号
$('input[type="button"]').click(function(){
    var key = this.id.replace(/knapp|'[|']/g, ''),  //  <---They key
        extraanpassningVal = $(this).attr("value"),
        amne_id_ea = $(this).attr("id"),
        elevens_id_ea = $("#elevens_id_ea").val(),
        arskursen_ea = $("#arskursen_ea").val();
    if (this.ajx) this.ajx.abort(); //  helps prevent multiple ajaxing (multiclicking)
    this.ajx = $.ajax({/*   options */});
})

有帮助吗?

供参考,$(this).attr("id")this.id是一回事

$('[name=test]').each(function(i) { $('#bob').text(this.id.replace(/knapp|'[|']/g, '')) })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="knapp4" name="test" value='my id is "knapp[4]"' />
<hr />
key: <span id="bob"></span>

试试这个

var amne_id_ea = "knapp[4]",
    value = amne_id_ea.substring(amne_id_ea.lastIndexOf("[")+1,amne_id_ea.lastIndexOf("]"));
alert(value);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>