jQuery操作伪元素??

今天有个需求要获得伪元素的高,但是返回却是null。就此查了下原因,原来是我对伪元素没有了解清楚。
伪元素只是在页面显示时起作用,在构建dom树时它被忽略。
JQuery只能获取dom节点。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="../jquery-1.10.2.min.js"></script>
</head>
<style>
   .sanjiao{
     position: relative;
     height: 100px;
     width: 100px;
     border: 1px solid #333;
   }
  .sanjiao::before{
    position: absolute;
    bottom: 0;
    content: "";
    border-width: 12px;
    border-color: red bisque greenyellow gray;
    border-style: solid;
    display: inline-block;
    box-sizing: border-box;
    height: 24px;;
  }
</style>
<body>
  <div class="sanjiao"></div>
  <p class="cont"></p>
  <script>
    $(".cont").html($('.sanjiao::before').height());
  </script>
</body>
</html>
image.png

由此看出,JQ只得到了document对象。

如果一定要获取伪元素的css属性,那么可以使用原生js实现
代码如下:

 <script>
var ele=document.querySelector('.sanjiao');
    var het = window.getComputedStyle(ele,':before').getPropertyValue('height');
 console.log(het);
  </script>

原生JS getComputedStyle的方法解析可参考https://www.imooc.com/article/27812

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 8,849评论 0 44
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,086评论 1 45
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 5,234评论 0 2
  •   DOM(文档对象模型)是针对 HTML 和 XML 文档的一个 API(应用程序编程接口)。   DOM 描绘...
    霜天晓阅读 9,076评论 0 7
  •   DOM 1 级主要定义的是 HTML 和 XML 文档的底层结构。   DOM2 和 DOM3 级则在这个结构...
    霜天晓阅读 5,359评论 1 3