在Foreach循环中使用Jquery替换

时间:2016-03-26 23:15:26

标签: javascript jquery

当我执行以下代码时,所有<s:property escapeHtml="false" value="datos" /> img id的{​​{1}}都将被替换,因为它们位于foreach循环中,但我想将其应用于所单击的代码只要。任何人都可以帮忙吗?

Html

imgg

JS

<button type="submit" id="getRequest" class="btn btn-info btm-sm " role="button" style="width:100px;height:30px">
<p id="imgg">Add to Cart</p>
 </button>

});

2 个答案:

答案 0 :(得分:-1)

谢谢大家,我找到了解决方案但是你真正的MVP,这里是

 $(document).ready(function()
{
 $(document).on('submit', '#reg-form', function()
 {
var imgid = $(this).find("#imgg");
var data = $(this).find("#post_id").val();
  //var ln = $("#lname").val();

  //var data = 'fname='+fn+'&lname='+ln;

//  var data = $(this).serialize();
  $.ajax({
  type : 'POST',
  url  : '{{url("/ajax")}}',
 data: {'name':data, '_token': $('input[name=_token]').val()},
 success: function(data) {
    $(imgid).replaceWith('<img id=imgg src=img/ajax.gif> ');
   var thisForm = this;
    setTimeout(function() {
        $(imgg).replaceWith('  <p id=imgg>Add to Cart</p> ').hide('blind', {}, 500)
    }, 1300);
    console.log(data);
},

      error :  function(data)
      {
          alert("You must Login First");
      }
  });
  return false;
 });

});
</script>
<script type="text/javascript">
$.ajaxSetup({
   headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});

答案 1 :(得分:-2)

而不是使用$(imgg)使用$(this),而当您在使用.replaceWith时使用iamge的ID时,您也错过了引号:

success: function(data) {
    $(this).replaceWith('<img id="imgg" src="img/ajax.gif>" ');
   var thisForm = this;
    setTimeout(function() {
        $(thisForm).replaceWith('  <p id="imgg">Add to Cart</p> ').hide('blind', {}, 500)
    }, 1300);
    console.log(data);
},

原因?

简单。此对象不会更改。它是该功能的所有者。在此处详细了解原因:Jquery - When to use "this" and when to use "$(this)"?

EDIT2

现在我必须把它放在上层这样:

  $(document).ready(function() {
     $(document).on('submit', '#reg-form', function() {

         var vm = this //Upper Level
         var data = $(this).find("#post_id").val();
         $.ajax({
             type: 'POST',
             url: '{{url("/ajax")}}',
             data: {
                 'name': data,
                 '_token': $('input[name=_token]').val()
             },
             success: function(data) {
                 $(vm).replaceWith('<img id=imgg   src=img/ajax.gif> ');

                 setTimeout(function() {
                     $(vm).replaceWith('  <p id="imgg">Add to Cart</p> ').hide('blind', {}, 500)
                 }, 1300);
                 console.log(data);
             },

             error: function(data) {
                 alert("You must Login First");
             }
         });
         return false;
     });
 });

请在此处参考这个特殊问题:
Uncaught TypeError: Cannot read property 'createDocumentFragment' of undefined