1.节点的克隆
- cloneNode,克隆一个节点,可添加参数,true为深克隆,不加或者传false为浅克隆
- setattribute,给元素设置属性
getattribute,检索元素的属性
// let box = document.getElementById('box');
// let ss = box.cloneNode(true);
// // 如果克隆的时候不穿参,或者传false就是浅克隆
// // 如果克隆的时候穿参true,就是深克隆
// console.log(ss);
//---------------------------------------------------
let box = document.getElementById('box'); // 获取的值是一个元素对象
box.ss = 123456; // 这种是把属性增加到元素的堆内存中
// console.log(box.ss); // 获取
// console.dir(box)
// setAttribute('属性名',value):设置属性
// getAttribute('属性名'):获取属性
// removeAttribute('属性名'):移除属性
// 他们三个都是控制的行间属性
box.setAttribute('sex', 456); // 放到当前元素的结构上了(行间)
console.log(box.getAttribute('sex'));
// 如果是用setAttribute设置的,就必须用getAttribute获取
console.dir(box)
box.removeAttribute('sex')
classList,检索元素的class集合 ```javascript // box.className = ‘f’ // 这是用f覆盖之前的类名
console.log(box.classList); // ['a','b','c','d']
// classList.add() // 在之前基础之上累加类名
// classList.remove() // 移除指定的类名
box.classList.add('f')
box.classList.remove('a')
// box.classList.replace('a', 'f') // 类名a被f替换,f会占用a的位置
// box.classList.toggle('t') // 之前如果有此类名就是删除,如果没有就是新增
<a name="zhf23"></a>
## 2.冒泡排序
```javascript
let ary = [5,1,16,20,12,40];
function ArySort(ary0){
for (let index = 0; index < ary0.length; index++) {
for(let i = 0;i<ary0.length-index;i++)
{
if(ary0[i]>ary0[i+1])
{
var temp = ary0[i];
ary0[i] = ary0[i+1];
ary0[i+1] = temp;
}
}
}
}
ArySort(ary);
console.log(ary);
3.用单引号或者双引号括起来的都是字符串
- length,字符串的字符长度、
- charAt通过指定的索引获取对应的字符串,如果获取不到就是空字符串
charCodeAt,获取指定索引的字符的ASCII码
// let str = 'asdqwe';
// console.log(str[0]); // 'a'
// console.log(str.charAt(0)); // 'a'
// console.log(str[100]); // un
// console.log(str.charAt(100)); // ''
// 2.charCodeAt():通过指定的索引获取对应字符串的ASCII码
// let str = 'asdqwe';
// console.log(str.charCodeAt(5)); // 101
substr(n,m):从索引n开始,截取m个字符;如果只传一个参数n,就直接截取到末尾
substring(n,m):从索引n开始,截取到索引为m的位置,不包含m对应的那一项。不支持负数
// 3.substr(n,m):从索引n开始,截取m个,如果传一个参数n,那就是从索引n开始,截取到末尾
// let str = 'asdqwe';
// console.log(str.substr()); // 克隆源字符串
// console.log(str.substr(0)); // 克隆源字符串
// console.log(str.substr(2)); // 'dqwe'
// console.log(str.substr(1,2)); // 'sd'
//4.substring(n,m):从索引n开始,截取到索引m(不包含m对应的那一项)【不支持负数】
// let str = 'asdqwe';
// console.log(str.substring()); // 克隆源字符串
// console.log(str.substring(0)); // 克隆源字符串
// console.log(str.substring(2)); // 'dqwe'
// console.log(str.substring(1, 2)); // 's'
// 5.slice:和数组的slice还有substring用法一样【支持负数】
let str = 'asdqwe';
console.log(str.slice(-3, -1)); // 3 5 'qw'
console.log(str.substring(-3, -1)); // 3 5 ''
// 把负数加上当前的length,然后在进行计算
split,把字符串以特定的字符分割成数组 ```javascript // 6.split:把字符串以特定的分隔符转化为数组
// let str = 'asd$ff$ghj$jkj';
// console.log(str.split('$')); // ['asd','ff','ghj','jkj']
// console.log(str.split()); // ["asd$ff$ghj$jkj"]
// console.log(str.split('')); /// ["a", "s", "d", "$", "f", "f", "$", "g", "h", "j", "$", "j", "k", "j"]
let str = 'asdasdasd';
// 我想删除字符串里的所有的a字符
// split和join
// console.log(str.split('a').join(''));
// str = str.split('a').join('');
console.log(str); // 'sdsdsd'
- replace(n.m):把字符串中的n用m进行替换,但是只能替换第一个n
```javascript
// let str = 'assffdsaaass';
// replace默认只能替换第一个
// console.log(str.replace('a', 'x')); // 'xssffdsaaass'
// 全局进行替换(使用正则)
// console.log(str.replace(/a/g, 'x')); // 'xssffdsxxxss'
// let str = 'qwe';
// str[3] = '4';
// console.log(str);//'qwe'
//给string封装方法
String.prototype.replaceAll = function(sep){
return this.replace(new RegExp(sep,'g'),'');
}
'abacqda'.replaceAll('a')//"bcqd"
- toLowerCase,将字符串中的大写字符转为小写;toUpperCase,将字符串中的大写字符转为小写
trim(),移除字符串中的空格,trimLeft移除左边的空格,trimRight移除右边的空格
// let str = 'qwe';
// str[3] = '4';
// console.log(str);
// 转大小写系列 8、9
// let str = 'sasdrAD中国哇塞';
// console.log(str.toLowerCase()); // 转小写 'sasdrad中国哇塞';
// console.log(str.toUpperCase()); // 'SASDRAD中国哇塞'
// 去空格系列
// let str = ' as d ';
// console.log(str.trim()); // 移除首尾的空格
// trimLeft:移除左边空格 trimRight:移除右边空格
// indexOf lastIndexOf includes concat //字符串也可以用