发表于: 2017-05-12 21:05:55

1 983


小课堂

1.innerHTML和innerText的区别,前者获取的是被操作元素的开始标签到结束标签之间的所有的元素,而后者获取的是被操作元素的开始标签到结束标签之间的所有文本,但是两者都可以用来修改元素内的内容,在修改元素内

的内容时,其他的之前已经存在的子元素会被覆盖

2.cloneNode方法,这个方法非常方便,可以快捷地对问文档中已经存在的元素进行复制;该方法有两个类型选择:第一个是cloneNode(false),这个方法会复制元素本身,但不会复制元素的子元素,我们来看效果图

可以看到元素本身得到了复制,包括元素的样式;

如果使用cloneNode(true)方法,效果是这样的:

可以看到元素本身包括它的父元素都得到了复制;

cloneNode()方法有它一定的特点,即这个方法只复制文档元素中在html中设置好的东西,而任何在js中对元素对象设置的属性或者方法,都不能获得;

上图中可以看到:我们在代码中给元素设置了name属性,deepList是副本的赋值变量,它复制了main【0】的name属性;

上图中可以看出,如果属性是在js中设置的,那么deepList是不会赋值元素的js属性的;

3.document.URL、document.referrer、document.domain是三种获取网址的方法:

我们来看上面的效果图:我们首先登陆百度首页,然后从首页跳转到了百度新闻页,这时候对新闻也使用这三种方法,我们发现:document.URL可以获得当前页的网址,document.referrer可以获取跳转源页面的网址,document.domain可以获取当前页面的域名;这三种方法中,document.domain的值是可以修改的,而且它有一个非常好用的地方,就是当页面中包含来自其他子域的框架或内嵌框架时,能够设置document.domain就非常方便了,由于跨域安全限制,来自不同子域的页面无法通过javascript通信,如果将每个页面的document.domain设置为相同的值,这些页面就可以互相访问对方包含的javascript对象了

4.element.style.cssText方法,此方法可以方便快捷地将多种要设置的css样式一次性设置,而且这种设置不是整体覆盖性的,而是会针对对应的属性进行覆盖:

我们对容器元素使用cssText进行样式设置,发现容器元素除了对应的背景颜色变了其他的样式都没有变化

5.attribute和property的区别:

(1)attribute是一个节点,是存在于html中的,因此都是在html代码中可见的,有各种节点类型的获取方法;

(2)property只是元素对象的一个属性,以名值对的形式存在,对其进行设置是不会对html有任何影响的;

(3)在实际应用中,由于元素自带属性都会有相互对应的attributes和property,而property使用起来较为简单,因此大多数情况下我们是直接使用property而不会使用attributes的

(4)尽管如此,attributes和property从根本概念和来源有非常大的区别:

如图:我们分别对main【0】元素设置了attributes特性和property属性,而在html中设置的attibutes属性name=“dog”是可以在属性节点中显示出来的,但是在js中设置property的home=“wuhan”属性却没有得到显示


返回列表 返回列表
评论

    分享到