这是我之前问题的延续。 我成功地制作了一个脚本,该脚本将用户输入中的一个代码转换为Unicode代码点,然后将其转换为特殊象形文字字体中的相应字符。这是我的代码:
<body>
<input id="userInput" name="userInput" type="text">
<button id="convert">Click me!</button>
<div id="hieroglyphs">
<p id="AbydosWord"></p>
</div>
<script>
$(document).ready(function() {
$("#convert").click(function(){
var GardinerToUnicodeCodePoint = {
"A1" :"995328",
"A1A" :"995329",
"A1B" :"995330",
"A1C" :"995331",
"A2" :"995332",
"A2A" :"995333",
};
var userInput = $("#userInput").val();
if (userInput in GardinerToUnicodeCodePoint) {
var convertedCode = String.fromCodePoint(GardinerToUnicodeCodePoint[userInput]);
$("#AbydosWord").empty();
$("#AbydosWord").append(convertedCode);
} else {
$("#AbydosWord").empty();
$("#AbydosWord").append("?");
}
});
});
</script>
</body>
现在我想创建一个函数,它将使用多个代码形式的用户输入(例如 A1 A2A A1C(并将其转换为象形文字字符串。这就是我到目前为止所达到的地方,但现在,它不起作用。
<body>
<input id="userInput" name="userInput" type="text">
<button id="convert">Click me!</button>
<div id="hieroglyphs">
<p id="AbydosWord"></p>
</div>
<script>
$(document).ready(function() {
$("#convert").click(function(){
var GardinerToUnicodeCodePoint = {
"A1" :"995328",
"A1A" :"995329",
"A1B" :"995330",
"A1C" :"995331",
"A2" :"995332",
"A2A" :"995333",
};
var finalCodeHolder = "";
var userInput = $("#userInput").val();
var userInputSplit = userInput.split(" ");
for (i = 0; i < userInputSplit.length; index++) {
if (userInputSplit[i] in GardinerToUnicodeCodePoint) {
var convertedCode = String.fromCodePoint(GardinerToUnicodeCodePoint[userInputSplit[i]]);
finalCodeHolder.push(convertedCode);
} else {
var convertedCode = "?";
finalCodeHolder.push(convertedCode);
}
}
$("#AbydosWord").append(finalCodeHolder);
});
});
</script>
</body>
我想这就是数组和.push()
方法convertedCode
问题。我希望您对此问题提供意见。
经过多次尝试,我终于做到了。
这是解决方案:
<script>
$(document).ready(function() {
$("#convert").click(function(){
var GardinerToUnicodeCodePoint = {
"A1" :"995328",
"A1A" :"995329",
"A1B" :"995330",
"A1C" :"995331",
"A2" :"995332",
"A2A" :"995333",
"A3" :"995334",
"A3A" :"995335",
"A3B" :"995336",
};
var finalCodeHolder = "";
var userInput = $("#userInput").val();
var userInputSplit = userInput.split(" ");
$("#AbydosWord").empty();
for (i = 0; i < userInputSplit.length; i++) {
if (userInputSplit[i] in GardinerToUnicodeCodePoint) {
var convertedCode = String.fromCodePoint(GardinerToUnicodeCodePoint[userInputSplit[i]]);
$("#AbydosWord").append(convertedCode);
} else {
var convertedCode = "?";
$("#AbydosWord").append(convertedCode);
}
}
});
});
</script>
现在我将尝试找到一种方法来使其实时运行 - 我试图避免单击按钮进行转换,它应该像常规键入文本一样。