Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用javascript脚本的更好方法_Javascript_Html - Fatal编程技术网

应用javascript脚本的更好方法

应用javascript脚本的更好方法,javascript,html,Javascript,Html,您好,我对html和javascript比较陌生,目前我想创建一个页面来完成某些操作,如查找数字数组的最大数和数字的阶乘,如下所示 下面是我如何组织这些部分的 <!DOCTYPE html> <html lang = "en"> <head> <title>HTML/CSS Responsive Theme</title> <meta charset = "utf-8">

您好,我对html和javascript比较陌生,目前我想创建一个页面来完成某些操作,如查找数字数组的最大数和数字的阶乘,如下所示

下面是我如何组织这些部分的

<!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事件进行测试。@Isaiah
    startFactory(factorialsfield.value)
    of
    onclick=“startFactory(factorialsfield.value)”
    在单击发生时进行评估,因此这无关紧要。@Isaiah我同意在底部放置脚本标记不是最佳做法(但过度使用js框架的人把它误认为是一个错误)但我不同意事件处理程序的设置。这必须在Dom被解析到足以访问相关元素之后才能发生。这是真的