我想从这些函数中获取值a,b,c并在总计中使用它们。我试图返回值,但它不起作用。当我创建全局变量时,total总是采用原始的全局变量而不是函数中的变量。
function d1() {
var a = document.getElementById("s1").value;
document.getElementById("d1").innerHTML = (2 * a).toFixed(2);
return a;
}
function d2() {
var b = document.getElementById("s2").value;
document.getElementById("d2").innerHTML = (3 * b).toFixed(2);
return b;
}
function d3() {
var c = document.getElementById("s3").value;
document.getElementById("d3").innerHTML = (4 * c).toFixed(2);
return c;
}
var total = a + b + c;
document.getElementById("total").innerHTML = total.toFixed(2);
答案 0 :(得分:3)
我认为应该是
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setPluginState(WebSettings.PluginState.ON);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
Log.d("TAG", "onPermissionRequest");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
request.grant(request.getResources());
}
}
});
由于变量a,b和c是函数的局部变量,因此它们属于这些函数范围。但是,最大的问题是你根本不调用函数,所以即使使用全局变量你的a,b,c也是未定义的。
答案 1 :(得分:1)
a,b和c分别是d1,d2和d3内的局部变量。因此,您无法像您尝试的那样直接在其范围之外使用它们。
有多种方法可以达到预期的效果。
最简单function d1() {
var a = document.getElementById("s1").value;
document.getElementById("d1").innerHTML = (2*a).toFixed(2);
return a;
}
function d2() {
var b = document.getElementById("s2").value;
document.getElementById("d2").innerHTML = (3*b).toFixed(2);
return b;
}
function d3() {
var c = document.getElementById("s3").value;
document.getElementById("d3").innerHTML = (4*c).toFixed(2);
return c;
}
**var total = d1() + d2() + d3();**
document.getElementById("total").innerHTML = total.toFixed(2);