为什么jQuery Ajax .html不起作用?


                    
 成功:function(json){
             for(var i = 0; i          var response = json [i];
          $('#rv-container')。html('

'+ response.name +'</ p>'+''+ response.id +'</ span>'));
     }
         $('#history_tracking')。hide();

         }
</ code> </ pre>

在成功回调中, $(#rv-container).html()</ code>将不起作用,但 .prepend </ code>会起作用。</ p>

为什么jQuery在成功回调中不允许 .html </ code>?
问题是通过ajax加载的html不断堆积已加载数据的顶部。 因此,它不会替换#rv-container </ code> </ p>中当前的数据

HTML:</ h3>

  

  

    

      
         最近查看的 </ span>
        
</ div>
       </ li>
     </ div>
    

      

        
</ div>
       </ div>
     </ div>
   </ div>
</ div>
</ code> </ pre>

反正还有可以用prepend替换div的内容吗?</ p>
     </ div>

展开原文

原文

success: function(json) {
            for (var i = 0; i < json.length; i++) {
        var response = json[i];
         $('#rv-container').html('<p>' + response.name + '</p>' + '<span>' + response.id + '</span>');
    }
        $('#history_tracking').hide();

        }

在success回调中,$(#rv-container).html()不起任何作用,但.prepend会起作用。

为什么jQuery在success回调中不允许 .html?通过ajax加载的html不断堆积已加载数据的顶部,因此,它不会替换#rv-container中当前的数据。

HTML:

<div id="bottom-toolbar">
  <div id="rv-facet">
    <div id="rv-fix">
      <li id="rv-title">
        Recently Viewed <span class="total_viewed"></span>
        <div id="rv-total" style="float:right; margin-right:25px;"></div>
      </li>
    </div>
    <div id="rv-content">
      <div id="rv-container">
        <div id="history_tracking"></div>
      </div>
    </div>
  </div>
</div>

有可以用prepend替换div的内容吗?

2个回答


您是在循环中调用它,因此很明显,无论是一遍又一遍地重置HTML内容( .html()</ code>)还是在其前面添加更多内容( .prepend()</ code>)?</ p>
     </ div>

展开原文

原文

You are calling it in a loop, so obviously it makes a difference whether you are resetting the HTML content over and over (.html()) or prepending more and more to it (.prepend())?


循环的每次迭代都定义了元素的内部HTML。因此,循环中的每个步骤基本上就像 var text =“ this is a test” </ code>,因此变量永远不会 增长。
您需要添加或添加数据。</ p>

 成功:function(json){
             for(var i = 0; i          var response = json [i];
          $('#rv-container')。append('

'+ response.name +'</ p>'+''+ response.id +'</ span>');
     }
         $('#history_tracking')。hide();

         }
</ code> </ pre>
     </ div>

展开原文

原文

Each iteration of your loop is defining the element's inner HTML.. So per step in the loop, this would basically be like var text = "this is a test", so that variable would never grow. You need to append or prepend the data.

success: function(json) {
            for (var i = 0; i < json.length; i++) {
        var response = json[i];
         $('#rv-container').append('<p>' + response.name + '</p>' + '<span>' + response.id + '</span>');
    }
        $('#history_tracking').hide();

        }

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问