Javascript 文本类型的输入字段中的上标

Javascript 文本类型的输入字段中的上标,javascript,html,Javascript,Html,我有一个HTML输入字段,如下所示: <input id="op" type="text" value="0" /> 我想用一些包含上标的字符串动态更新这个字段的值。它不起作用,我试过这个 document.getElementById("op").value="a<sup>3</sup>" //don't work document.getElementById("op").innerHTML="a<sup>3</sup>" /

我有一个HTML输入字段,如下所示:

<input id="op" type="text" value="0" />

我想用一些包含上标的字符串动态更新这个字段的值。它不起作用,我试过这个

document.getElementById("op").value="a<sup>3</sup>" //don't work
document.getElementById("op").innerHTML="a<sup>3</sup>" //don't work
document.getElementById(“op”).value=“a3”//不起作用
document.getElementById(“op”).innerHTML=“a3”//不工作
我怎样才能让它工作?我本来可以自己去想其他的,但既然我已经被迫问这个问题,我想告诉你我打算做什么

 var x=3; var y=2;
 document.getElementById("op").innerHTML="a<sup> x-y </sup>";
var x=3;变量y=2;
document.getElementById(“op”).innerHTML=“a x-y”;
不是容器,因此不“包含”任何html

的value属性必须是纯文本,因此不,您不能执行我认为您正在尝试的操作

不过,根据您真正需要做的事情,有不同用途的变通方法。看

此外,您还可能发现在
中使用“可编辑”内容是有价值的。请参见插件:

$.fn.superScript = function() {
    var chars = '+−=()0123456789AaÆᴂɐɑɒBbcɕDdðEeƎəɛɜɜfGgɡɣhHɦIiɪɨᵻɩjJʝɟKklLʟᶅɭMmɱNnɴɲɳŋOoɔᴖᴗɵȢPpɸrRɹɻʁsʂʃTtƫUuᴜᴝʉɥɯɰʊvVʋʌwWxyzʐʑʒꝯᴥβγδθφχнნʕⵡ',
        sup   = '⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᴬᵃᴭᵆᵄᵅᶛᴮᵇᶜᶝᴰᵈᶞᴱᵉᴲᵊᵋᶟᵌᶠᴳᵍᶢˠʰᴴʱᴵⁱᶦᶤᶧᶥʲᴶᶨᶡᴷᵏˡᴸᶫᶪᶩᴹᵐᶬᴺⁿᶰᶮᶯᵑᴼᵒᵓᵔᵕᶱᴽᴾᵖᶲʳᴿʴʵʶˢᶳᶴᵀᵗᶵᵁᵘᶸᵙᶶᶣᵚᶭᶷᵛⱽᶹᶺʷᵂˣʸᶻᶼᶽᶾꝰᵜᵝᵞᵟᶿᵠᵡᵸჼˤⵯ';

    return this.each(function() {
        this.value = this.value.replace(/<sup[^>]*>(.*?)<\/sup>/g, function(x) {
            var str = '',
                txt = $.trim($(x).unwrap().text());

            for (var i=0; i<txt.length; i++) {
                var n = chars.indexOf(txt[i]);
                str += (n!=-1 ? sup[n] : txt[i]);
            }
            return str;
        });
    });
}
可能也会绑定到keyup等,并且很容易转换为纯javascript而不是jQuery,但我只是制作了它,所以如果它可以工作,请修改它以满足您的需要


输入
标记中不能这样做。你必须为自己设计一个复杂的文本框。而且,
标签是自动关闭的。你不需要一个结束标签。@mohkhan:我所有最可怕的恐惧都成真了……谢谢。总是有内容可编辑的div。+1真棒。一个疑问是你是如何添加的
sup=⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᴬᵃᴭᵆᵄᵅᶛᴮᵇᶜᶝᴰᵈᶞᴱᵉᴲᵊᵋᶟᵌᶠᴳᵍᶢˠʰᴴʱᴵⁱᶦᶤᶧᶥʲᴶᶨᶡᴷᵏˡᴸᶫᶪᶩᴹᵐᶬᴺⁿᶰᶮᶯᵑᴼᵒᵓᵔᵕᶱ在html代码中,表示浏览器如何呈现此内容。这都是UFT-8,因此不应该成为问题,它必须是实际字符,而不是实体或任何其他内容,因为这在值属性中不起作用。它与值属性一起工作。因此,如果他的页面使用UTF8编码,他可以直接使用。如果我错了,请纠正我。是的,它适用于任何东西,它只是用等效的上标字符替换字符。非常有用的插件。谢谢
$('input').superScript();