Jquery 如果可编辑div没有文本,则设置占位符

Jquery 如果可编辑div没有文本,则设置占位符,jquery,html,css,Jquery,Html,Css,我正在尝试使用占位符创建可编辑的div。但我希望在此div中没有文本时自动设置占位符 实际上,我使用的是contentEditable='true';这个元素位于div.上,我是这个函数的jQuery句柄占位符。 ` $('div').on('activate', function() { $(this).empty(); var range, sel; if ( (sel = document.selection) &&a

我正在尝试使用占位符创建可编辑的div。但我希望在此div中没有文本时自动设置占位符

实际上,我使用的是contentEditable='true';这个元素位于div.上,我是这个函数的jQuery句柄占位符。 `

     $('div').on('activate',
        function() {
       $(this).empty();
       var range, sel;
     if ( (sel = document.selection) && document.body.createTextRange){
    range = document.body.createTextRange();
    range.moveToElementText(this);
    range.select();} });    


    $('div').focus(function() {
    if (this.hasChildNodes() && document.createRange && window.getSelection) {

   $(this).empty();
    var range, sel;
    range = document.createRange();
    range.selectNodeContents(this);
    sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
}});

`这个问题的措辞不是很清楚,但听起来你想做一个决定

你的问题很模糊,但我会尽力给你一些有用的解决方案:

HTML:

<div id="editableDiv">
    <textarea id="editText" placeholder="This is my placeholder"></textarea>
</div>
对不起,如果这不是你要找的,但这是我所能做的最好的信息量

您可以这样做:

<div contenteditable="true" id="editDiv">Placeholer</div>

您可以尝试将CSS与pseudo:empty和:before和data属性一起使用。


它应该可以在一些浏览器中使用

我不想让我知道的文本区域出现。我应该发布一些代码,你的标记是什么?你到底想做什么?这件事不适合我的要求。
<div contenteditable="true" id="editDiv">Placeholer</div>
var placeholder = "Placeholder"; //Change this to your placeholder text
$("#editDiv").focus(function() {
    if ($(this).text() == placeholder) {
        $(this).text("");
    }
}).focusout(function() {
    if (!$(this).text().length) {
        $(this).text(placeholder);
    }
});
div:empty:before {
  content:attr(data-placeholder);
  color:gray
}
<div  contenteditable="true" data-placeholder="You can insert & edit content here."></div>