Jquery 内容可编辑默认值

Jquery 内容可编辑默认值,jquery,html,Jquery,Html,我有一个contenteditable div,我想要它的初始值或默认值。 在输入中,它将是$(this).prop('defaultValue') 在div中,我尝试: def = $(this).text() 这会获取初始值,但当用户更改div的内容时,它会更改。是否有方法获取和存储该初始值 在这里查看和播放: HTML: 现在\u val将始终具有初始值,可以在使用窗口的任何位置使用它。\u val 现在\u val将始终具有初始值,使用窗口可在任何需要的地方使用它。\u val检查De

我有一个contenteditable div,我想要它的初始值或默认值。 在输入中,它将是
$(this).prop('defaultValue')

在div中,我尝试:

def = $(this).text()
这会获取初始值,但当用户更改div的内容时,它会更改。是否有方法获取和存储该初始值

在这里查看和播放:
HTML:

现在
\u val
将始终具有初始值,可以在使用
窗口的任何位置使用它。\u val

现在
\u val
将始终具有初始值,使用
窗口可在任何需要的地方使用它。\u val
检查Def是否为空

var def='';
$(“div”).focus(函数(){
如果(def==“”){
def=$(this.text())
$('#check').text(def);
}
});

名称
检查
检查Def是否为空

var def='';
$(“div”).focus(函数(){
如果(def==“”){
def=$(this.text())
$('#check').text(def);
}
});

名称
选中
您可以使用
.attr()
获取id,即“name”

$("div").focus(function () {    
    def = $(this).attr('id')
    $('#check').text(def);
});
您可以使用
.attr()
获取id,即“name”

$("div").focus(function () {    
    def = $(this).attr('id')
    $('#check').text(def);
});


难道你不能把它分配给一个变量,然后保存起来以备将来使用吗<代码>var defaultVal=$(“#名称”).text()
@Andrew正如我所说,我已经准备好使用def=$(this).text(),当用户更改div的内容时,这个变量也会更改,我想要一种只存储初始值的方法,对不对,只需将它放在
focus
函数之外,就像@void在他的答案中所显示的那样。这个问题出了什么问题?为什么会有负面影响?我能做些什么来改进吗?难道你不能把它分配给一个变量并存储起来,以备以后使用吗<代码>var defaultVal=$(“#名称”).text()
@Andrew正如我所说,我已经准备好使用def=$(this).text(),当用户更改div的内容时,这个变量也会更改,我想要一种只存储初始值的方法,对不对,只需将它放在
focus
函数之外,就像@void在他的答案中所显示的那样。这个问题出了什么问题?为什么会有负面影响?有什么我可以改进的吗?我在这里试过了,但没有效果。也许有什么我不明白的。顺便问一下,为什么你用“窗口”我在这里试过,但它不起作用。也许有什么我不明白的。顺便问一下,你为什么用“窗口”我喜欢这个答案,因为它很简单。但它有一个局限性,即必须将div的值与id匹配。在这种情况下,它可以工作,但在许多情况下很难使两者相同。您可以为每个div指定一个name值。像name='name',然后不获取id,只需获取名称:.attr('name')@Nrcit可以很好地处理任何属性。但是如果div真的很长,或者div的内容是动态的呢?如果是这种情况,那么您可能需要使用更复杂的解决方案。但是这个解决方案应该适用于简单的静态命名。我喜欢这个答案,因为它很简单。但它有一个局限性,即必须将div的值与id匹配。在这种情况下,它可以工作,但在许多情况下很难使两者相同。您可以为每个div指定一个name值。像name='name',然后不获取id,只需获取名称:.attr('name')@Nrcit可以很好地处理任何属性。但是如果div真的很长,或者div的内容是动态的呢?如果是这种情况,那么您可能需要使用更复杂的解决方案。但是这个解决方案应该适用于简单的静态命名。它在大多数情况下有效,但并不总是有效。例如,如果你留下相同的名字……当然,如果内容是相同的,它将不起作用,它只跟踪原始内容。它在大多数情况下起作用,但并不总是起作用。例如,如果你留下相同的名字……当然,如果内容相同,它就不起作用,它只跟踪原始内容
var _val; // global

$(function(){
   _val = $("#name").val();
});
$("div").focus(function () {    
    def = $(this).attr('id')
    $('#check').text(def);
});