货币兑换 - 如何从 onclick 调用函数中的函数
Currency Exchange - How to call a function within a function from onclick
堆垛机:我编写了一个外汇计算器(印度卢比兑美元),并增加了印度的千万卢比和十万卢比计数系统。正如你在这里看到的,它运行良好:[外汇计算器][1]。
为了改进它,我想找到一种方法来让代码出去并获取具有当前汇率的 JSON 对象,该对象在许多地方都可以通过 API 获得。虽然我可以编写一个获取汇率的函数,但我没有运气得到一个点击调用来使其工作。
我查看了jQuery页面,但找不到答案。如果我使用 load 函数,格式是这样的:
$('selector').load('url',callback) {
do some callback of some kind
};
通过一个简单的页面,我每次都可以让它工作,但是 -
因为我想通过 onclick html 调用触发对最新汇率的调用,所以我想使用 onclick 中的函数。我的第一个问题是,我的选择器应该是什么?通常我会通过 id 或类将其定向到 innerHTML,但这似乎在这里不起作用。
其次,我似乎应该设置我的代码,以便在页面加载时,它会发出并记录当前汇率。有没有办法让JavaScript/jQuery在页面加载时执行此操作,即使我还没有调用该函数?理想情况下,我会将变量设置为今天的速率一次并将其保存在本地,因此我只需要每天更新一次。
最后,我将与onclick相关的函数调用设置为:
onclick = run(123.45) with 123.45 being today's rate.
有没有办法用函数替换 123.45,也就是函数中的函数?我想使用从 jQuery .load
方法返回的今天速率作为填充运行函数调用的参数。无论我如何尝试,我都无法让它工作。我已经搜索了谷歌,没有找到任何让我相信我做错了的事情。
感谢您的任何帮助。
// js logic to run calculator with the assumption that each
// calculation involves some pos or negative number and then
// an operator (+-/*) which always yields a positive number.
// ex: 2 + 2 = (4 elements) adding another number and operator
// ex: / 3.5 is now 6 elements in the array.
arr = [];
var total = 0, rupee;
var box = document.getElementById("display");
当前卢比兑美元汇率的调用
var url = "https://api.fixer.io/latest?base=USD";
// BELOW IS THE CODE FROM MY FIRST QUESTION
$(**WHATSHOULDTHISSELECTORBE?**).load(url, function(responseTxt) {
var obj = JSON.parse(responseTxt);
rupee = obj.rates.INR;
});
卢比兑美元看涨期权结束
function run(digit) {
x = box.value;
if (x !== '.' && isNaN(x)) {
box.value = "";
}
box.value += digit;
}
function runPlus() {
var digits = box.value;
if (digits === "") {
return;
}
arr.push(Number(digits)); // tried parseInt but dropped decimal nos.
box.value += "+";
arr.push("+");
console.log(arr);
}
function runMinus() {
var digits = box.value;
if (digits === '') {
arr.push("-");
return;
}
arr.push(Number(digits));
box.value = "";
box.value = "-";
arr.push("-");
console.log(arr);
}
function runMult() {
var digits = box.value;
if (digits === "") {
return;
}
arr.push(Number(digits));
box.value = "";
box.value += "*";
arr.push("*");
console.log(arr);
}
function runDiv() {
var digits = box.value;
if (digits === "") {
return;
}
arr.push(Number(digits));
box.value = "";
box.value += "/";
arr.push("/");
console.log(arr);
}
function runEquals() {
var digits = box.value;
if (digits === "") {
return;
}
arr.push(Number(digits));
arr.push("=");
box.value = "";
total = arr[0];
var ans = calculateArr(arr);
box.value = ans;
}
function runClear() {
box.value = "";
arr = [];
}
function calculateArr(arr) {
for (var i = 0; i < arr.length; i = i + 2) {
if (arr[i + 1] === "+") {
total = total + arr[i + 2];
} else if (arr[i + 1] === "-") {
total = total - arr[i + 2];
} else if (arr[i + 1] === "*") {
total = total * arr[i + 2];
} else if (arr[i + 1] === "/") {
total = total / arr[i + 2];
} else if (arr[i + 1] === "=") {
total = total;
} else alert("Error");
}
return ReplaceNumberWithCommas(total);
}
function ReplaceNumberWithCommas(yourNumber) {
//Seperates the components of the number
var n = yourNumber.toString().split(".");
//Comma-fies the first part
n[0] = n[0].replace(/'B(?=('d{3})+(?!'d))/g, ",");
//Combines the two sections
if (n[1]) {
n[1] = n[1].split("").slice(0, 2);
n[1] = n[1].join("");
}
return n.join(".");
}
[1]: http://codepen.io/Qstreet/pen/GovZdg
由于您需要在页面加载时自动检索值,因此需要使用 xhr 请求。
$.get( "your-url", function( data ) {
$( "where you want to insert it" ).html( data );
//or call your-custom-function(data);
});
如果要在单击事件时获取值,请将上面的代码作为函数插入到jquery单击事件处理程序中
@Anmol。我得到了它的工作:
var url = "http://api.fixer.io/latest?base=USD";
function runRup() {
var xhr = new XMLHttpRequest();
xhr.open("GET",url,false);
xhr.send(null);
var rt = JSON.parse(xhr.responseText);
return rt.rates.INR;
};
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- JavaScript函数调用(arg1)(arg2)
- 打印链接时,将javascript函数调用到链接中
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 无法从JavaScript中的函数调用对象属性
- 对中的函数调用进行排序是回调的唯一方法
- 函数调用方法有什么用
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- HTML5(Bootstrap)通过函数调用运行动画
- 函数调用不起作用
- 函数中的Javascript函数调用