使用JQuery html()时,它会在使用Ajax更改之前返回内容

时间:2011-07-20 09:25:21

标签: jquery ajax

我有一个div来保存文章内容,可以使用ajax进行更改。

我需要这个div中的内容,我使用jquery函数html()来做到这一点,但它只能在更改之前获取内容。

如何使用jquery获取直接内容?

更新

它在我自己的页面中运行良好,问题是来自其他网站的“分享到Facebook”按钮脚本。

这是一个示例脚本:

  <script type="text/javascript" charset="utf-8">
(function(){
  var _w = 72 , _h = 16;
  var param = {
    url:'dachaocai.com/bench/2',
    type:'3',
    count:'1', 
    appkey:'', 
    title:$('#title').html()+'(Bench->'+$('#b_name').html()+')'+'http://www.dachaocai.com/bench/2', 
    pic:'', 
    ralateUid:'', 
    rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  }
  document.write('<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>')
})()
</script>

我使用html()来获取要分享的文章标题,但它始终是旧标题。 有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

<div id="div">

</div>

然后在ajax成功回调中插入此div中的新数据,然后尝试这个 -

var htmlAfterChange = $('#div').html();
alert(htmlAfterChange );

答案 1 :(得分:0)

你可以使用Jquery对服务器进行异步调用,然后在回调中你可以将一些Html附加到div。我希望这有帮助。如果您发布一些代码,我可以更新答案。

修改 创建一个div以将结果放入:

<div id='result'></div>

var url = "http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&');
$.get(url, function(data){
    $('#result').html(data);
});

通过这种方式,您可以从服务器获取html,而不会出现iframe的复杂情况。 然后你可以从div中读取数据

答案 2 :(得分:0)

设置缓存:false

$.ajax({
  url: "test.html",
  cache: false,
  success: function(html){
    $("#results").append(html);
  }
});

http://api.jquery.com/jQuery.ajax/