jQuery从元素获取ID

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

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

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

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

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

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

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

  1. $(document).on('submit','form',function(e) {
  2. e.preventDefault();
  3. var id = this.id;
  4. $.post(this.action,function(response) {
  5. $('#targetElement').html(id);
  6. },'json');
  7. });

猜你在找的HTML相关文章