问答详情
源自:9-16 创建元素节点createElement

为什么这一节里面要加innerHTML=text?

不写text 文字就变成了 和自己设置的一样了,求解惑

提问者:qq_Mr_9 2015-11-10 16:58

个回答

  • zoe0773
    2015-11-12 12:38:17
    已采纳

    拿这个例子来说吧,我也是初学者我只能按我所知道的和理解的来给你解释下:

    var main = document.body;

    function createa(url,text){

        var newnode = document.createElement('a');

        newnode.setAttribute('href',url);

        newnode.innerHTML = text;

        newnode.style.color = 'red';

        main.appendChild(newnode);

    }

    // 调用函数创建链接

      createa("www.imooc.com","慕课网");

    这是上面的例子,www.imooc.com相当于上面函数的参数url,慕课网相当于text这个参数;

    如果我们不是那样写,像下面这样不传参数:

    var main = document.body;

    function createa( ){

        var newnode = document.createElement('a');

        newnode.setAttribute('href',"www.imooc.com");

        newnode.innerHTML = "慕课网";

        newnode.style.color = 'red';

        main.appendChild(newnode);

    }

    createa();//我们必须要先调用以下它,才能完成创建了一个带href属性,内容为慕课网的<a>元素

    //如果说我还让你继续创建10个a标签,分别写十个网站的网址和网站名,那按照以上我们是不是要写十段相同的代码,分别给它的href设置不同的网址,还有innerHTML赋值不同的名称,那样是不是很麻烦呢?这时候我们就需要抽离出相同的代码,只给它传入两个形参,来代替不同的实参就可以了。(形参就是像url,text,实参就是调用这个函数时传入的参数“www.imooc.com”“慕课网”)

  • qq_Mr_9
    2015-11-13 10:03:53

    嗷嗷,谢谢

  • zoe0773
    2015-11-10 17:47:02

    这里的text是封装的createa这个函数传进去的参数,这样做的好处是,可以多次调用这个函数传递不同的参数。函数的复用性