HTML 知识点
本文用于记录 HTML 中一些容易忘记、遗漏、混淆的知识点,不定时更新……
disabled readonly checked selected 属性
只要 HTML 包含此类属性,无论值是 true 或者 false ,都会生效。
jQuery 操作此类属性推荐使用 prop() 方法,无论是否含有此类属性,都会返回 true 或 false :
- 返回属性的值:
$(selector).prop(property) - 设置属性和值:
$(selector).prop(property,value)
而 attr() 会返回 disabled readonly checked selected 或 undefined
添加移除属性
js 中的方法
- 直接添加属性(动态添加属性,不会出现在 HTML 代码中)
- 设置:
DOM元素.index = 1 - 获取:
DOM元素.index
- 设置:
Attribute方法setAttribute(name, value)设置 input 元素文本框的值的方式是input元素.value='天天向上'getAttribute(name)获取 input 文本框的值的方式是input元素.valueremoveAttribute(name)
data-*属性- 为
DOM元素设置私有自定义数据:DOM元素.dataset.name='xxx'或DOM元素.dataset["name"] = 'xxx' - 获取 HTML 属性
data-*保存的私有自定义数据:DOM元素.dataset.name
- 为
注意: 假设 element 代表一个 DOM 元素,通过 element.setAttribute('xxx', 1) 和 element.xxx = 1 的形式设置值的时候
- 如果
xxx是代表特性的属性,比如id和class,那么不管哪种方法设置,都会互相共用,也就是说,通过element.xxx与element.getAttribute('xxx')获取的结果都一样。 - 如果
xxx代表的不是特性的属性,那么获取的值就不会共用。比如element.xxx = 1,通过getAttribute方法获取值的时候会返回null,并且不会出现在 HTML 代码中;同样的,通过setAttribute方法设置的值用element.xxx获取也不会返回值,只会返回undefined,但是新加的键和值会出现在 HTML 代码中。 - 有些 HTML 的特性属性以
element.xxx形式赋值或取值时需要做相应的变化,比如class要写成className,for要写成HTMLFor,readonly要写成readOnly。
jQuery 中的方法
jQuery不可以直接点出属性,需要通过attr('xxx')方法获取$jq.attr('name', 'value')- 也可以使用对象的方式添加多个属性
input文本框与textarea文本域值的操作$jq.val()$jq.val('天天向上')
- DOM 元素的文本内容
$jq.text()$jq.text('内容')
- 移除属性
$jq.removeAttr('name')
- 对于 HTML 元素本身就带有的固有属性,在操作时采用
prop()和attr()方法均可,但是碰到checkbox、radio、select、button这些元素,它们的checked、selected、disabled属性要使用prop()方法。 - 对于 HTML 中我们自定义的属性只能使用
attr方法,使用prop设置和获取属性值时都会返回undefined。
根据已有 file 对象构建新的 file 对象
1 |
|
模板引擎 (jade/art-template/nujunks等等)
模板引擎的本质是处理字符串,是按照自己规定的模板语法解析对应的模板字符串,跟 HTML、DOM 没有关系,只要字符串有对应的模板语法皆能解析处理。