从同一个网址重新加载相同的div

时间:2012-02-19 22:55:36

标签: jquery

我有contentEditable div,(可以由客户端更改),我如何添加一个按钮来刷新div的内容,它应该删除这个$(this)div的所有子节点并从中重新加载它们服务器,刷新内容&恢复用户所做的更改。

问题是,有许多这些可编辑的div并且都共享相同的类,所以我不能只为.load()指定一个id或类 - 似乎问题是我不能使用jquery选择器作为要获取的片段,因此我需要为每个可编辑的div提供一个id。

我尝试了以下

.load()使用$(this)作为id

的url(即“window.location”)

没有运气

  There are many of these divs! I appended a button to each editable div,
  <div contentEditable class="editable">`<p>abc...</p>`<button>refresh</button></div>  


 $('.editable button').click(function(){
    $(this).parent('.editable').children('*').remove();
    $(this).parent('.editable')
    .load(window.location + " " + $(this).parent('.editable').children('*') );
    return false;
    })

有什么问题? &安培;什么是最好的方法?

1 个答案:

答案 0 :(得分:1)

您希望使用此代码:window.location + " " + $(this).parent('.editable').children('*')

如果您有一个特定的URL来加载每个可编辑的内容,您可以将此URL设置为可编辑元素的属性,但如果您只有一个可编辑区域并且是所有页面内容,则只需要再次获取该页面(比如重装)

所以,解决案例1:

$('.editable button').click(function(){
  var $editable = $(this).closest('.editable');
  var reloadURL = $editable.attr('reload-url');
  $editable.load(reloadURL);
})

对于案例2,您只需:

$('.editable button').click(function(){
  var $editable = $(this).closest('.editable');
  $editable.load(window.location.href + " #" + $editable.attr('id'));
})

.load()方法用ajax请求的响应中的内容替换元素的内容