元素 <td> 内的自定义占位符未显示 [重复]

Posted

技术标签:

【中文标题】元素 <td> 内的自定义占位符未显示 [重复]【英文标题】:Custom placeholder inside element <td> not showing [duplicate] 【发布时间】:2016-12-12 08:54:47 【问题描述】:

我正在使用 JQuery 向表中动态添加新行。 我想在表格单元格中有一个占位符,当用户单击输入文本时该占位符消失。 我试图制作可以做到这一点的 CSS。

这里是 JQuery:

$("#addbutton").click( function()
    $('#searchresults > tbody:last-child').append('<tr><td> <div contentEditable="true" data-text="Enter Name"></div> </td> \
                                                       <td><div contentEditable="true" data-text="Enter Description"> </div> </td>
                                                   </tr>')

这是 CSS:

<style>
[contentEditable=true]:empty:not(:focus):before
    content:attr(data-text)

</style>

占位符文本未显示。 有什么建议 ?

我已经更新了问题,以便在.append('') 内的字符串中正确拼接新行我仍然无法显示文本。我在 El Capitan 上使用 Safari。新行已添加并可编辑,但文本不存在!

行被添加并且也是可编辑的。只是文字不可见。

【问题讨论】:

【参考方案1】:

我看到的唯一问题是新行:当您需要继续下一行时,您需要转义新行字符,如:

var str = '11111\
llllllll';

sn-p:

$(function () 
  $("#addbutton").click(function() 
    $('#searchresults > tbody:last-child').append('<tr><td><div contentEditable="true" data-text="Enter Name"></div></td>\
<td><div contentEditable="true" data-text="Enter Description"></div></td>\
</tr>');
  );
);
[contentEditable=true]:empty:not(:focus):before
  content:attr(data-text)
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

<button id="addbutton">addbutton</button>
<table id="searchresults">
    <tbody>

    </tbody>
</table>

【讨论】:

仍然无法显示文本。奇怪 @asehgal 它在我的 sn-p 中有效吗? 都是关于字符转义的。这是由@gaetanoM 代码组成的codePen。但是,如果您像他建议的那样“转义”,在行尾 AND 用制表符缩进下一行... Naaah。逃逸只计算换行符!看看我的CodePen here,它允许很酷的缩进 不。也没有帮助。如果线拼接是一个问题,它甚至可能不会添加行并使内容可编辑。行被添加并且也是可编辑的。只是文字不可见。【参考方案2】:
$("#addbutton").click( function()
    $('#searchresults > tbody:last-child').append('<tr><td> <div contentEditable="true" data-text="Enter Name"></div> </td> \
                                                       <td><div contentEditable="true" data-text="Enter Description"></div></td>
                                                   </tr>')

&lt;td&gt; &lt;div&gt; 之间有一个空格,如上所示。有人编辑了问题并将其删除。

请不要随意编辑问题。显然在 会搞砸的!

【讨论】:

??字符串中的空格不是问题。我从未见过 html 中 à tddiv 之间的空格存在问题。问题是 JS 中的字符串定界。 是的,你可能是对的,因为我使用的是 HTML INSIDE JS。

以上是关于元素 <td> 内的自定义占位符未显示 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Select2 多框占位符未在隐藏时显示,然后使其可见

并发症占位符未显示

允许 tr 和 td 元素内的分页符

jQuery dataTable 列的自定义排序

OpenACC 计算构建内的自定义函数

<td> 内的 Img 路径显示但无法单击它