JS 函数问题?

JavaScript016

JS 函数问题?,第1张

兄弟你几个地方写错了

1、js事件名称写错了。是onclick不是onclik,少了一个c

2、获取控件是getElementById,不是getElemenById,少了一个t

3、逻辑不够严谨,如果文本框没有输入内容就提示对了。

修改后的代码如下:

<!DOCTYPE html>

<html>

<head>

    <mate charset="UTF-8">

<title>Insert title here</title>

<script>

    //网页加载时直接生成随机数,

    //该数在body加载钱就有了,所以

    //用户点击猜时在对应函数内可以用。

    //0<=x<1

    var ran = parseInt(Math.random() * 100)

    //无论此函数写在前面还是这里,它都是在用户点击按

    //钮时调用的,它都比生成的随机数执行的晚。

    function guess() {

        //获取文本框里的值

        var n = document.getElementById("num").value

        var span = document.getElementById("result")

        if (n == "") {

            span.innerHTML = "请在文本框输入数字"

            return

        }

        //判断该值是否为数字

        if (isNaN(n)) {

            //不是数字,给予提示

            span.innerHTML = "请输入数字"

        } else {

            //是数字,和随机数比较

            if (n < ran) {

                span.innerHTML = "太小了"

            } else if (n > ran) {

                span.innerHTML = "太大了"

            } else {

                span.innerHTML = "对了"

            }

        }

    }

</script>

</head>

<body>

    <input type="text" id="num" />

    <input type="button" value="猜" onclick="guess()" />

    <span id="result"></span>

</body>

</html>

1、obj1你可以将其理解为一个物体,在网页中的表现他可能就是一个dom节点。

2、getStyle函数所做的事情是取节点样式的值,其中ele表示的是需要取样式值得dom节点,attr表示的是需要取哪个样式?currentStyle和getComputedStyle是浏览器支持的,之所以这样写是为了兼容各个浏览器。

3、etStyle(obj1,'left')就是去obj1这个元素距离左边的偏移量,是距离网页最左边还是父元素要看当前元素是什么定位。

4、最后的if判断就是判断两个元素有没有碰撞到。

这个one是个形参(形式参数),而 abc(this) 的this则是实参(实际参数),两者实际上是相同的,每次调用时abc后面的括号里放什么参数,函数里的one就等于这个参数。而this是每次点击时的a标签,因此one.getAttribute("href")实际上就是获取所点击的a标签的href属性。

参数是可以任意命名的,前提是必须符合js的命名规则(比如不能使用js的保留字)。

下面用个更简单点的例子帮助你理解:

function abc(x){  //这里把参数名设为x了,不是one了

    alert(x)

}

abc(1)  //这里实参是1,那么函数里的形参x就是1

var a = 123

abc(a)  //实参用变量也是一样意思的,这时候x就等于123了