【发布时间】:2016-01-14 07:02:29
【问题描述】:
我是 SO 和 JS 的新手。我想把这段代码翻译成纯 JS,但我真的很挣扎。有人可以帮帮我吗?
$(document).ready(function(){
var displayFix = function(num) {
if (num.length > 9) {
total.text(num.substr(0,9));
}
};
var number = "";
var newNumber = "";
var operator = "";
var total = $(".display");
total.text("0");
$(".numbers span").not(".clear, .dot").click(function(){
number += $(this).text();
total.text(number);
displayFix(number);
});
$(".dot").click(function() {
if ( number.length == 0)
{ number = "0.";
} else {
number += $(this).text();
total.text(number);
displayFix(number);
};
});
$(".operators span").not(".igual").click(function(){
operator = $(this).text();
newNumber = number;
number = "";
total.text("0");
});
$(".clear").click(function(){
number = "";
total.text("0");
newNumber = "";
});
$(".igual").click(function(){
if (operator === "+"){
number = (parseFloat(newNumber,10) + parseFloat(number,10)).toString(10);
} else if (operator === "-"){
number = (parseFloat(newNumber,10) - parseFloat(number,10)).toString(10);
} else if (operator === "/"){
number = (parseFloat(newNumber,10) / parseFloat(number,10)).toString(10);
} else if (operator === "*"){
number = (parseFloat(newNumber,10) * parseFloat(number,10)).toString(10);
}
total.text(number);
displayFix(number);
number = "";
newNumber = "";
});
$(document).keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode === 49) {
$("#num1").click();
} else if (keycode === 50) {
$("#num2").click();
} else if (keycode === 51) {
$("#num3").click();
}
});
});
我想我可以替换以下几行:
-
var total = $(".display")与var total = document.querySelector(".display") -
total.text("0")与total.innerHTML="0" -
$(".dot").click(function() {与document.querySelector(".dot").onclick = function() {
另外,我使用的浏览器是更新的 Chrome,我不需要它来支持其他浏览器。
【问题讨论】:
-
您在哪些方面特别苦恼?其中大部分只是选择器和事件绑定/调度,您似乎已经知道该怎么做。
-
@KevinB 他们没有...他们对
querySelector的使用是错误的
标签: javascript jquery code-translation