使用 jQuery prop() 按名称添加 html 实体

Add html entity by name with jQuery prop()

我想使用 jQuery prop() 向输入元素的占位符属性添加省略号,但我得到的不是预期的 ,而是文字字符串 …

如何使用 jQuery prop() 按名称添加 html 个实体?

$(document).ready(function(){
 $('div#b input').prop('placeholder','Search…');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<div id="a"><input type="text" placeholder="Search&hellip;" /></div><br />
<div id="b"><input type="text" /></div>

只需键入水平省略号:

$(document).ready(function(){
 $('div#b input').prop('placeholder',$(document.createElement('div')).html('Search&hellip;').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<div id="a"><input type="text" placeholder="Search&hellip;" /></div><br />
<div id="b"><input type="text" /></div>

最简单的解决方案是使用原始十六进制代码而不是命名实体,因为 JS 和 DOM API.

可以很好地处理这些代码

$(document).ready(function(){
 $('div#b input').prop('placeholder','Search\u2026'); // <- \u2026 is &hellip;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

<div id="a"><input type="text" placeholder="Search&hellip;" /></div><br />
<div id="b"><input type="text" /></div>

您必须以一种或另一种方式调用 HTML 解析器。您可以创建一个新元素,设置其 HTML 内容并将其内容作为文本获取:

$('div#b input').prop(
  'placeholder',
  $('<div />').html('Search&hellip;').text()
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="b">
  <input />
</div>

HTML Entity Decode