我有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;
})
有什么问题? &安培;什么是最好的方法?
答案 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请求的响应中的内容替换元素的内容