AJAX console.log 返回未定义

AJAX console.log is returning undefined

我的数据库的 while 循环中有这两个输入字段:

<input type="hidden" id="ID<?=$product['id'];?>" name="ID" value="<? 
=$product['id'];?>">

<input type="hidden"   id="name<?=$product['id'];?>" name="hidden_name" 
value="<?=$product['title'];?>">

这是触发 AJAX 的按钮:

<input type="button" class="button" name="cartbtn" id="button<? 
=$product['id'];?>"  value="Quick Add-to-Cart">

当我这样做时我的问题出现了:

<script type="text/javascript">

$(document).ready(function(data){

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

        var product_id = $(this).attr('id');
        var product_name = $('#name'+product_id).val();
        console.log(product_name);

    });
});

</script>

console.log(product_name); 返回为未定义。

var product_id = $(this).attr('id'); 没有问题,如果我 console.log(product_id) 它 returns: "button6",例如(应该如此)。

id="button<?=$product['id'];?>"

前面不应该有"button",所以:

id="<?=$product['id'];?>" 

正确。我忘记了,抱歉。

如果console.log(product_id) returns button6 那意味着你的 product_namenamebutton6。我相信你希望它是 name6

既然你把它弄得太复杂了,最简单的方法是:

var product_name = $(`#name${product_id.slice(6)}`).val();

您使用 slice(6) 方法删除前六个字符 'button'