是否可以生成所有表情符号并附加到 select 下拉列表?

Is it possible to generate all the emojis and append to the select dropdown?

是否有任何可能的方法来生成所有表情符号并使用 JavaScript 将它们附加到单个 select 下拉菜单?或者我必须手动输入它们中的每一个?

<select>
    <option></option>
    <option></option>
<select>

<script>
function()
{
    // How do I put all the emojis into the select dropdown..?
}
</script>

如果您的表情符号是 unicode 字符,请将它们全部放入一个数组中并循环构建您的 select 下拉列表,如下所示:

var myEmojis = ['&#9786', '&#9785']; //put all your emojis in this array
var selectOptions = "<option>select</option>";
for(var i = 0; i < myEmojis.length; i++){
  selectOptions += "<option>" + myEmojis[i] + "</option>"
}
$('select').html(selectOptions);

您可以定义不同表情符号范围的起始值和结束值。然后,您可以遍历每个范围并将表情符号附加到选项标签。

var mySelect = document.getElementById('mySelect')
var newOption;
var emojRange = [
  [128513, 128591], [9986, 10160], [128640, 128704]
];
//inside emojRange 2d array , define range arrays (start number,end number).
//1st array : Emoticons icons
//2nd range : Dingbats.
//3rd range : Transport and map symbols
for (var i = 0; i < emojRange.length; i++) {
  var range = emojRange[i];
  for (var x = range[0]; x < range[1]; x++) {

    newOption = document.createElement('option');
    newOption.value = x;
    newOption.innerHTML = "&#" + x + ";";
    mySelect.appendChild(newOption);
  }

}

我从这个站点获取了十六进制范围:http://apps.timwhitlock.info/emoji/tables/unicode

var mySelect = document.getElementById('mySelect')
var newOption;
var emojRange = [
  [128513, 128591] ,[9986,10160],[128640,128704]
];
//inside array define range arrays.
//1st array : Emoticons icons
//2nd range : Dingbats.
//3rd range : Transport and map symbols
for (var i = 0; i < emojRange.length; i++) {
  var range = emojRange[i];
  for (var x = range[0]; x < range[1]; x++) {

    newOption = document.createElement('option');
    newOption.value = x;
    newOption.innerHTML = "&#" + x + ";";
    mySelect.appendChild(newOption);
  }

}
option {
  font-size:50px;
}
<select id="mySelect">
</select>

我从Full Emoji Data, v3.0 and put them in a JavaScript library hosted in Github下载了字符,未授权发布。

使用它你可以编写如下代码:

var target = document.getElementById("target");
var emojiCount = emoji.length;

for(var index = 0; index < emojiCount; index++)
{
  addEmoji(emoji[index]);
}

function addEmoji(code)
{
  var option = document.createElement('option');
  option.innerHTML =  code;
  target.appendChild(option);
}
<script src="https://rawgit.com/theraot/emoji/master/emoji.js" charset="utf-8"></script>
<select id ="target">
<select>

您可以使用 JavaScript 将列表过滤为仅那些没有修饰符的表情符号。

我将在下面的 Github 中复制我为该项目编写的 README:


表情符号

JavaScript

的所有表情符号列表

使用如下:

<script src="https://rawgit.com/theraot/emoji/master/emoji.js" charset="utf-8"></script>

Full Emoji Data, v3.0

中检索到表情符号列表

注1:一些表情符号由两个Unicode字符组成。这些使用表情符号修饰符,可能无法正确呈现。

注意 2:支持可能因浏览器和平台而异,建议使用表情符号字体。