nextSibling previousSibling

nextSibling previousSibling
1/nextSibling属性
       该属性表示当前节点的下一个节点(其后的节点与当前节点同属一个级别);如果其后没有与其同级的节点,则返回null。
      需要特别注意的是:该属性在不同的浏览器中的执行结果并不都相同,见下面例示:
     先来看一个例子:

        

大家好,又见面了,我是你们的朋友全栈君。

1/nextSibling属性

        该属性表示当前节点的下一个节点(其后的节点与当前节点同属一个级别);如果其后没有与其同级的节点,则返回null。

       需要特别注意的是:该属性在不同的浏览器中的执行结果并不都相同,见下面例示:

      先来看一个例子:

 
 
 
  1. <div>     
  2. <input id="a4" type="button" onclick="alert(this.nextSibling);" value="d" />     
  3. <input id="a5" type="button" onclick="alert(this.nextSibling);" value="e" />     
  4. </div> 

该对象的结构表面上看,div的nextSibling只有2项——两个input节点。但实际上有5项——/n,input,/n,input,/n。这是因为input作为创建各种表单输入控件的标签,无论是生成button、checkbox、radio…等或其他表单控件,IE都会自动在后面创建一个1字节位的空白。

       IE将跳过在节点之间产生的空格文档节点(如:换行字符),而Mozilla不会这样——FF会把诸如空格换行之类的排版元素视作节点读取,因此,在ie中用nextSibling便可读取到的下一个节点元素,在FF中就需要这样写:nextSibling.nextSibling了。

       opera和safari对nextSibling的处理方式与FF一致

        2:previousSibling属性

        该属性与nextSibling属性的作用正好相反。例如:someTagObject.nextSibling.previousSibling其实返回的是该标签元素本身,但前提必须是:该标签元素的后面必须有一个同级的元素,否则就返回null了。

       3:通过nextSibling或者 previousSibling所获得的HTML标签元素对象的属性问题

       一般先通过nextSibling.nodeName来获知其标签名,或者通过nextSibling.nodeType来获知其标签类型,然后,如果该nextSibling.nodeName = #text,则通过nextSibling.nodeValue来获知其文本值;否则,可以通过nextSibling.innerHTML等其他常用标签元素属性来获取其属性。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158531.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【转载】图说OOP基础(一)

    【转载】图说OOP基础(一)

    2021年11月20日
  • java trylock超时_java trylock以及可中断锁

    java trylock超时_java trylock以及可中断锁线程在调用lock方法来获得另一个线程所持有的锁的时候,很可能发生阻塞。应该更加谨慎地申请锁。tryLock方法试图申请一个锁,在成功获得锁后返回true,否则,立即返回false,而且线程可以立即离开去做其他事。可以调用tryLock时,使用超时参数。lock方法不能被中断。如果一个线程在等待获得一个锁时被中断,中断线程在获得锁之前一直处于阻塞状态。如果出现死锁,那么,lock方法就无法终止。A…

    2022年10月16日
  • MacPorts_苹果mac教程

    MacPorts_苹果mac教程在macOS上管理软件包,MacPorts和homebrew是不错的选择。但有网友说MacPorts倾向于在自己电脑上编译,而homebrew倾向于使用已经编译好的。这些暂且不论,但有一点,MacPorts是个老牌的工具,它支持的库确实比homebrew多,这让我不得不选择MacPorts.下面简单介绍下MacPortsMacPorts官方文档:https://guide.macpor

  • byteBuffer_bytebuffer.wrap

    byteBuffer_bytebuffer.wrap引言在nio中,流的读取和写入都是依赖buffer的。jdk在nio包中提供了ByteBuffer、CharBuffer、ShortBuffer、LongBuffer、DoubleBuffer、FloatBuffer等。6中类型的buffer还分为两种实现,缓存在jvm堆中和缓存在直接内存中。Buffer主要属性//Invariants:mark<=position&lt…

  • Android Studio StrictMode

    Android Studio StrictMode最近接手一个新项目,研究下代码,并学习其中一些好的地方。比如今天发现运行app以后会有log显示 StrictMode相关信息,通过查看代码,我发现在某Activity中使用了StrictMode的一些功能,老实说,StrictMode我在手机的开发者选项中有见到过,enable以后用过几分钟……尝鲜,但是代码里面从来没用过这个功能,从来没用过    他主要是检测线程&虚拟

  • java服务器开发心得

    java服务器开发心得本人已从事java服务器开发三年多了,对java服务器开发比较有心得,特此对这三年多来进行下技术总结,并与大家分享。作为服务器开发,对基础知识的掌握程度,将决定你的服务器各方面的能力,一般在进行java服务器开发前,最重要的是能够熟练运用以下技术:javaclassLoader、javathread、javaI/O(NIO)和javasocket。 一般来说,服务器设计大致

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号