问答详情
源自:1-3 jQueryHelloWorld体验

区别是什么那?

$(this).parents(".ex").hide(); 和
$(this).parentNode(".ex").hide();还有$(this).parentNode.hide();的区别是什么那?刚开始学习,$(this).parents(".ex").hide()可以实现对类名为ex的隐藏功能,但是第二个和第三个就不行,为什么

提问者:苏子沫 2016-11-17 10:34

个回答

  • 小佳佳QAQ
    2016-11-17 10:58:11
    已采纳

    主要的区别就是jQuery对象和原生DOM对象的区别

    jQuery的.parent()函数是只往父级找一层

    jQuery的.parents()函数是往父级找多层,一直找到body标签

    parentNode是HTML DOM parentNode 属性,不是jQuery方法

    $(this)是jQuery对象,无法直接使用DOM对象的方法及属性,需要转成DOM对象,转成DOM对象了之后也不能使用jQuery的方法了,改为:

    $(this).get(0).parentNode.style.display="none";

    (根据我自己的理解在网上查了解释,希望对你有帮助,对不对需要你自己试一下)

  • 闫小箱
    2016-11-17 11:02:49

    $(this).parentNode(".ex").hide(); 返回的是.ex节点的父节点的节点名 例如<ul><li>Coffee</li><li>Tea</li></ul>  

    var x=document.getElementById("demo");  
    var y=document.getElementsByTagName("LI")[0];
    x.innerHTML=y.parentNode.nodeName;
    }返回的是ul