相信小的力量
2018.4.23
键盘的事件响应,如回车键:
$("aqi-input").onkeyup = function(event) { //keyCode 对应不同的按键 if (event.keyCode === 13) { $("aqi-display").innerHTML = $("aqi-input").value; } }
- input中的值只有时间绑定触发了它的值才有意义,要不获取不来的,还有用value获取,innerHTML获取不出来.
- ES6中模板字符串的高级用法(功能不同可以进行灵活转化):
它的优点是可以直接放在innerHTML里进行DOM的增删,不用循环创建和添加DOM,不但不需要使用循环的条件下需要进行进行结构的重新刷新,而且还减少了DOM操作,增加了页面性能
let data = [
{name: 'Akira', age: 35},
{name: 'Jane', age: 26},
{name: 'Jhon', age: 54}
];
let formatedList = (data) => `
<ul>
${
data.map(item => `
<li>姓名:${item.name},年龄:${item.age}</li>
`).join('')
}
</ul>
`;
console.log('output:'+formatedList(data))
2018.4.24
- 箭头函数如果带{}的话需要return,如果return 跨行的内容是要加()的比如
return(
`
<li>${rankArr[index]}: ${item[0]},${item[1]}</li>
` )
不过看起来很奇怪,完全可以写到一行。只是今天写成了这个格式却没加括号找了半天问题才发现
2018.4.26
getElementByTagName和querySelectorAll的方法返回的并不是对象也不是数组,是一个叫做NodeList的对象,是一个特殊的对象,不能用for-in方法,但具备数组的forEach方法,但是数组的forEach方法是没有返回值的,即使return也没有 所以可以将它转化成是数组。NodeList转数组可以用Array.from()方法进行转换。
普通对象或者Nodelist转数组的方法:
Array.prototype.slice.call(item)
怎么判断一个值是不是数组,函数等引用类型:用typeof肯定是不行的,因为js里他们的类型都是object。所以要用instanceof 看是true还是false。
let arr = [];
console.log(arr instanceof Array)
2018.4.27
- for-in 方法遍历属性和值:
var arr = {
a: 1,
b: 2,
c: 3
}
for (let i in arr) {
console.log(i, arr[i])
}
- 删除一个标签下所有的节点的方法:
html:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
while(ul.hasChildNodes()) {
ul.firstChild.remove();
}
伪数组:带个length的对象,而且这个对象的属性值得是对应顺序的序号才行,这样的对象可以用Array.from(obj)给转化成数组
事件委托:自己写的一个总结:跳转
html中的表单的每一行都用tr(table-row)包起来,里面的元素都是td标签,但是第一行一般都是题目性质的,我们要遵循语义化,没个块写th标签