jQuery从元素获取ID

前端之家收集整理的这篇文章主要介绍了jQuery从元素获取ID 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

大家好,我在Jquery中遇到问题.这是我在PHP文件中的代码的一部分.

echo '<form action="add.PHP" method="post" id="'.$data["pro_id"].'">';
echo '<input style="display:none" type="text" name="img_link" value="'.$data["img_link"].'">';                   
echo '<input style="display:none" type="text" name="pro_url" value="'.$data["pro_url"].'">';
echo '<input style="display:none" type="text" name="pro_price" value="'.$data["pro_price"].'">';                    
echo '<input style="display:none" type="text" name="total_fb" value="'.$data["total_fb"].'">';                    
echo '<input style="display:none" type="text" name="pro_id" value="'.$data["pro_id"].'">';
echo '<input style="display:none" type="text" name="pro_name" value="'.$data["pro_name"].'">';
echo '</form>';

我需要提交表单,但请留在同一页面上,因此我使用了以下代码.它确实可以在不转到其他页面的情况下起作用,但是如何获取此表单的ID?当我输出id但结果将是NoneType.

$('form').live('submit',function() {
  $.post($(this).attr('action'),$(this).serialize(),function(response) {
    var id = $(this).attr('id');
    document.write(id);
  },'json');
  return false;
});
最佳答案
您使用的是正确的方法,但是您的问题是$.post()调用中的此引用没有引用触发Submit事件的元素.因此,您需要将该行移至外部范围.

这里还有两件事需要解决.首先请注意live()很久以前已不推荐使用.您应该检查所使用的jQuery版本,因为它至少应为1.12.1,或者最好是3.3.1(在撰写本文时),而应使用on().

其次,您不应使用document.write().相反,您可以使用jQuery选择要更新的元素,然后对其调用html().尝试这个:

$(document).on('submit','form',function(e) {
  e.preventDefault();
  var id = this.id;
  $.post(this.action,function(response) {
    $('#targetElement').html(id);
  },'json');
});

猜你在找的HTML相关文章