jQuery动态id值在WordPress中返回UNDEFINED


jQuery dynamic id value returning UNDEFINED in WordPress

我试图获得WordPress Post Id 动态作为jQuery中的变量。但是,当我尝试在console中调试时,它返回未定义的值。有谁能帮我一下吗?

代码如下:

data-id属性显示当前post的id

<?php $id = get_the_id(); ?>
 <button data-id="<?php echo $id; ?>" type="button" class="book btn btn-danger">
    Submit
</button>
我jQuery

jQuery(document).ready(function(jQuery){
jQuery('.packageForm').submit(packageSubmit);     
        function packageSubmit(){
           var id = jQuery(this).attr('data-id');
           var ceccForm = jQuery(this).serialize();
            jQuery.ajax({
            type:"POST",
            url: "wp-admin/admin-ajax.php",
            data: ceccForm,
            success:function(data){
            console.log(id);
            console.log(data);
            jQuery(".response").html(data);
            jQuery(".packageForm")[0].reset();
            jQuery('body').removeClass('modal-open');
            }
        });
      return false;
      }
 }); 

在这里,我使用var id = jQuery(this).attr('data-id');来动态获取属性data-id的值。在浏览控制台中显示消息未定义值

有什么帮助吗?

这里this实际上是指你的表单packageForm,因为你是从表单的提交函数调用它,它不会有你已经设置为按钮的属性。

你可以这样做

var id = jQuery(this).find('button.book').data('id');

这是指表单而不是按钮

如果按钮在表单标签

中,执行查找操作获取按钮
jQuery(this).find('button.book').attr('data-id');