美文网首页
前端基础一

前端基础一

作者: d7bbdf9acf78 | 来源:发表于2017-05-02 11:02 被阅读0次

@(前端)


探索深度受个人能力所限,如有不当之处,恳请指教。

基础知识就此略过,下面主要记录在工作中的困惑。

1. DOM对象中的Property与Attribute

在jQuery中操纵DOM对象的属性用$\ $obj.attr()$ , 特性用 $\ $obj.prop()$
在《javascript高级程序》一书中DOM对象中的Property被翻译为DOM对象的特性,DOM对象的Attribute被翻译为DOM对象的属性。这个Property其实就是对象中的property(经常被称为对象的属性:属性名,属性描述)

比如通过对象字面量形式声明一个对象:
let peng = {
    "name": "fuxiao",
    "age": 25
}

// 检测对象中是否有name属性(属性名name,和属性名name的描述)
peng.hasOwnProperty('name')

// 列举出对象中所有的可枚举的属性的属性名(包括继承下来的属性,以数组的形式返回)
Object.getOwnPropertNames(peng)

// ES6中简介的对象表示方法(也属于字面量的形式)就很好理解了
var sex = "man"
var other = { sex }

页面渲染完成后,浏览器已将 DOM结构转为 DOM对象。此时再通过针对DOM对象属性操作的API对其属性操作,DOM对象的Attributes(NamedNodeMap)是动态变化的。但是DOM对象所对应的特性没有发生变化。


JS通过API获取到的是转换后的DOM对象。DOM对象的Property是基于DOM对象的Attribute创建的。


  • 原生JS API将input对象的checked分别按特性和属性的操作(checked disabled hidden ....)
// input 输入框 <input type="text" checked="any value" id="inputText">
// 原生对checked按特性的操作  只要input元素设置特性checked ,无论值是什么,都将按checked=true 处理 这和元素特性disabled hidden一样
var oInput = document.getElementById('inputText')
console.log(oInput.checked)  // true 获取checked特性
oInput.checkded = false      // 设置checked特性
console.log(oInput.checked)  // false  获取特性正确 但是DOM结构和DOM对象均没有发生变化

下面看下对DOM属性的操作

// 原生对checked按属性的操作
var oInput = document.getElementById('inputText')
console.log(oInput.getAttribute('checked'))  // any value
oInput.setAttribute('checked', 'other value')
console.log(oInput.getAttribute('check'))    // other value
// 更对其他DOM对象的属性操作一样

显然判断多选框或单选框是否选取,通过getAttribute得到的结果不正确。将checked 按特性处理,获取和设置均正确。但是对特性checked设置值时DOM结构和DOM对象没有发生变化,是浏览器的问题么?
应该与shadowDom有关,组件

相关文章

  • 前端基础进阶系列

    前端基础进阶(一):内存空间详细图解前端基础进阶(二):执行上下文详细图解前端基础进阶(三):变量对象详解前端基础...

  • 二、flask开发基础与入门

    一、web开发基础 1、前端知识 前端开发基础: HTML CSS JavaScript 前端常用的库与框架: b...

  • 前端入门系列

    前端HTML & CSS 基础入门(1)初识 前端HTML & CSS 基础入门(2)段落及文本 前端HTML &...

  • 前端基础一

    @(前端) 探索深度受个人能力所限,如有不当之处,恳请指教。 基础知识就此略过,下面主要记录在工作中的困惑。 1....

  • 【350页】前端校招面试题及解析大全

    前言 前端校招面试题主要内容包括html,css,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据...

  • Javaweb基础(一)前端基础

    全部学习可以参考:http://www.w3school.com.cn/ 一.HTML 1.HTML网页介绍 JA...

  • web前端入门基础

    web前端基础笔记 学习web前端开发基础技术需要掌握:HTML、CSS、JavaScript语言。下面我们就来了...

  • HTML基础学习笔记

    原 Blog 链接:HTML基础学习笔记 自学 html 基础笔记 Web 前端简单介绍 web 前端包含: pc...

  • 学习Vue框架之前,要有JavaScript的知识储备

    前端三剑客知识储备(有关前端的专题) ☑ HTML基础知识 ☑ CSS基础知识 ☑ JavaScript5基础知识...

  • 无标题文章

    #Web前端 - web前端是什么 - 定义 - 职责 - web前端基础知识和学习路线 - web前端学习的...

网友评论

      本文标题: 前端基础一

      本文链接:https://www.haomeiwen.com/subject/wwrmnttx.html