应用javascript脚本的更好方法
您好,我对html和javascript比较陌生,目前我想创建一个页面来完成某些操作,如查找数字数组的最大数和数字的阶乘,如下所示 下面是我如何组织这些部分的应用javascript脚本的更好方法,javascript,html,Javascript,Html,您好,我对html和javascript比较陌生,目前我想创建一个页面来完成某些操作,如查找数字数组的最大数和数字的阶乘,如下所示 下面是我如何组织这些部分的 <!DOCTYPE html> <html lang = "en"> <head> <title>HTML/CSS Responsive Theme</title> <meta charset = "utf-8">
<!DOCTYPE html>
<html lang = "en">
<head>
<title>HTML/CSS Responsive Theme</title>
<meta charset = "utf-8">
<link rel = "stylesheet" href = "main.css" type = "text/css">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<script>
function startFactorial(number)
{
function factorial(num)
{
if(num <= 1)
return 1;
return num * factorial(num - 1);
}
document.factorials.factorialsfield.value = factorial(number);
}
function startMaxofFive(str)
{
//can actually find the max of n numbers not limited to 5
function maxoffive(string)
{
var nums = (string.match(/[-]?\d+/g));
var b = nums.map(Number);
return Math.max.apply(Math,b);
}
document.mof.moffield.value = (maxoffive(str));
}
</script>
</head>
<body>
<section id = "first">
<h3>Factorial</h3>
<form name= "factorials">
Enter a number <input type = "number" name = "factorialsfield" value = 0>
<br><br>
<input type = "button" onClick = "startFactorial(factorialsfield.value)" value = "Calculate"/>
</form>
</section>
<br>
<section id = "second">
<h3>Max of Five Numbers</h3>
<form name = "mof">
Enter 5 numbers <input type = "text" name = "moffield" placeholder = " separate each number by commas" size = 26>
<br><br>
<input type = "button" onClick = startMaxofFive(moffield.value) value = "Calculate"/>
</form>
</section>
<br>
<section id = "third">
<h3>Sum and Multiply</h3>
<form name = "operations">
Enter numbers to apply operations <input type = "text" name = "operationsfield"
</form>
</section>
</body>
</html>
HTML/CSS响应主题
函数StartFactory(编号)
{
函数阶乘(num)
{
if(num通常认为最佳做法是在结束正文标记之前将脚本移动到页面底部。这样,脚本的加载不会干扰页面加载
您还可以将脚本移动到单独的文件中,并将其包括在内:
<script src="myscripts.js"></script>
这将有助于使代码更加整洁有序。通常认为最好的做法是在结束正文标记之前将脚本移动到页面底部。这样,脚本的加载不会干扰页面加载
您还可以将脚本移动到单独的文件中,并将其包括在内:
<script src="myscripts.js"></script>
这将有助于使您的代码更加整洁有序。您总是使用函数来调用函数。听起来很奇怪,但事实就是这样:p
通过向JavaScript文件添加eventlisteners,可以从DOM中删除JS调用,如下示例所示:
<script>
var x = document.getElementById('test');
x.addEventListener('click', function(){
// your function magic happens here
});
</script>
<div id="test"></div>
var x=document.getElementById('test');
x、 addEventListener('单击',函数()){
//你的函数魔法发生在这里
});
对不起,如果我理解错了你的问题,你总是用函数来调用函数。听起来很奇怪,但事实就是这样:p
通过向JavaScript文件添加eventlisteners,可以从DOM中删除JS调用,如下示例所示:
<script>
var x = document.getElementById('test');
x.addEventListener('click', function(){
// your function magic happens here
});
</script>
<div id="test"></div>
var x=document.getElementById('test');
x、 addEventListener('单击',函数()){
//你的函数魔法发生在这里
});
抱歉,如果我理解错了您的问题我不确定这是否是您所要求的,但是,您似乎想知道访问HTML中javascript代码或脚本的其他方法
我真的可以推荐您,为此研究Angular。使用Angular,您可以在控制器中调用方法,并在视图(HTML)和控制器(Javascript)之间调用范围数据
但这只是众多选项中的一个!我不确定这是否是您所要求的,但是,您似乎想知道访问HTML中javascript代码或脚本的其他方法
我真的可以推荐您,为此研究Angular。使用Angular,您可以在控制器中调用方法,并在视图(HTML)和控制器(Javascript)之间调用范围数据
但这只是众多选项之一!以下是一些建议:
您可以使用document.getElementById(id)
获取特定元素,其中id是HTML的元素id
事件允许您根据用户输入触发操作。其工作原理基本相同,但您不再需要命名函数:element\u variable.event=function(){/*…*/}
查看内部函数是否真的是必需的;查看是否可以在不再需要该函数的地方编辑代码(document.getElementById
可能可以让您执行该操作)
例如:
<form id="factorials" name="factorials">
<!-- Skipping input -->
<input type="submit" <!-- ... -> />
</form>
// Javascript file
var fact = document.getElementById( "factorials" );
fact.onsubmit = function() {
/* Your code here */
}
以下是一些建议:
您可以使用document.getElementById(id)
获取特定元素,其中id是HTML的元素id
事件允许您根据用户输入触发操作。其工作原理基本相同,但您不再需要命名函数:element\u variable.event=function(){/*…*/}
查看内部函数是否真的是必需的;查看是否可以在不再需要该函数的地方编辑代码(document.getElementById
可能可以让您执行该操作)
例如:
<form id="factorials" name="factorials">
<!-- Skipping input -->
<input type="submit" <!-- ... -> />
</form>
// Javascript file
var fact = document.getElementById( "factorials" );
fact.onsubmit = function() {
/* Your code here */
}
真的不清楚…什么是“不必创建另一个函数就可以访问脚本中的那些函数”?例如??您不应该使用屏幕截图来提供此类信息。如果您需要制作屏幕截图,请确保只发布相关部分而不是所有屏幕。很抱歉,我发布得很匆忙。我的意思是,我可以将脚本放在一个单独的位置,以便onclick事件处理程序访问吗?我只知道如何使用通过将它们设置为函数来实现,这真的很不清楚……什么是“在我的脚本中访问这些函数而不必创建另一个函数”?例如??您不应该使用屏幕截图来提供此类信息。如果您需要制作屏幕截图,请确保只发布相关部分而不是所有屏幕。很抱歉,我发布得很匆忙。我的意思是,我可以将脚本放在一个单独的位置,以便onclick事件处理程序访问吗?我只知道如何使用他们把它们等同于功能,但这对事件不起作用,我不认为这是最好的。practice@Isaiah为什么你认为这对事件不起作用?只是将代码移动到js文件中而不将其包装到函数中不会改变函数的可访问性年龄加载;在任何浏览器中使用onclick事件进行测试。@IsaiahstartFactory(factorialsfield.value)
ofonclick=“startFactory(factorialsfield.value)”
在单击发生时进行评估,因此这无关紧要。@Isaiah我同意在底部放置脚本标记不是最佳做法(但过度使用js框架的人把它误认为是一个错误)但我不同意事件处理程序的设置。这必须在Dom被解析到足以访问相关元素之后才能发生。这是真的