js常用知识点

单选按钮:运用三木运算符

<input type="radio" name="sex" id="man" checked><input type="radio" name="sex"><button id="btn">获取性别</button>
<p id="title">当前选择的性别是:</p>

<script>
    var oMan = document.getElementById("man");
    var oBtn = document.getElementById("btn");
    var oTitle = document.getElementById("title");

    //点击,显示对应的性别
    oBtn.onclick = function () {
        //看男有没有选择,如果选中了就是男,否则就是女
        console.log(oMan.checked);//true:选中   false:没有选中
        oMan.checked === true?oTitle.innerHTML = "当前选择的性别是:男":oTitle.innerHTML = "当前选择的性别是:女"
    }
</script>

开关:定义全局变量 tag=true 判断后切换为flase,

if(tag===true){
要执行的代码
tag=flase;
}else{
需要执行的代码
tag=flase;
}

双重循环:排他思想

<style>
        ul{
            list-style: none;
            padding: 0;
            margin: 0;
            width: 300px;
            height: 300px;
            border: 1px solid red;
        }
        li{
            width: 100px;
            height: 100px;
            text-align: center;
            line-height: 100px;
            float: left;
        }
    </style>
	<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
</ul>

<script>
    //1.获取元素
    var oLi = document.getElementsByTagName("li");
    //2.循环添加点击事件
    for(var i = 0;i<oLi.length;i++){
        oLi[i].onclick = function () {
            console.log(oLi[i]); //i = 9  循环添加的点击事件中,里面不要再使用循环变量i
            console.log(this); //触发事件的对象

            //将所有的li的样式全部清空
            for(var j = 0;j<oLi.length;j++){
                oLi[j].style.background = "";
            }
            //this=被点击的标签
            this.style.background = "red";
        }
    }

点击事件:加自定义属性(或者用立即执行函数)

<button >仲夏夜之梦</button>
    <button >凤求凰</button>
    <button >缤纷独角兽</button>
    <script>
        //        [button   button  button]
        var arr = ["pink","red","skyblue"];
        var oBut = document.getElementsByTagName("button");

        //循环
        for(var i = 0;i<oBut.length;i++){
            oBut[i].index = i;//添加自定义属性,确保点击的是当前的按钮
            oBut[i].onclick = function () {
                //this-->标签
//                alert(this.index);
                document.body.style.background = arr[this.index];
            }
        }

字符串转json

  //字符串转json
        var str = "http://item.taobo.com/item.html?a=1&b=2&c=&d=xxx&e";
        var json = {};

        str = str.split("?")[1]; //a=1&b=2&c=&d=xxx&e
        var arr = str.split("&");
        console.log(arr); //["a=1", "b=2", "c=", "d=xxx", "e"]

        for(var i = 0;i<arr.length;i++){
            var a = arr[i].split("="); //["a", "1"]
            json[a[0]] = a[1];
        }
        console.log(json);

随机排序

数组.sort(funcation(a,b){
return 0.5-Math.random();
})

字符串中出现字符最多的:思想:定义对象存放字符串、如果有值++

 var str = "fjkajieouriweljrmlksjfoieutlkajdoiqueoiwqjelkjflkdsjfoiwurpowqurkgjfd";
    //出现次数最多的字符,及次数
    var obj = {/* "f":10, "j":2,"s":10*/};
    for(var i = 0;i<str.length;i++){
        //如果已经存在当前字符,就+1
        if(obj[str[i]]){ //如果能取出来东西,说明已经存在 obj.key
            obj[str[i]]++;
        }else{ //取不出来,undefined
            obj[str[i]] = 1;
        }
    }
    console.log(obj.z);
    console.log(obj);

    var max = 0;
    var value = "";
    for(var key in obj){  //for(var key in  循环的对象)  每一次循环的时候,都会把对象前面key存储在前面声明的对象中
      if(max < obj[key]){
          max = obj[key];
          value = key;
      }
    }
    console.log("出现次数最多的是"+value+"一共出现了"+max+"次");

数组常用的方法:

push():逐个加到数组末尾,返回数组长度
pop():末尾删除,减少了数组长度,返回移除项
unshift(),shift()在开头添加删除,同理上
splice()移除当前数组的一部分
sort()数组排序
map()返回一个新的数组

字符串常用方法
charAt(下标):返回数组下标字符串
indexof()从左向右查找首次出现的位置,找不到返回-1
seach()从左向右查找首次出现的位置,找不到返回-1
lastindexof从右向左
截取
substring()
slice()
大小写
toLowercase() toupercase()
分割split()
替换 replace()

DOM操作
1获取子节点:父节点.children;非标准,返回元素集合
父节点.childNodes标准 返回包括文本元素
2节点属性:标签1 属性2 文本3 nodetype判断
nadeName 标签节点名
nadeValue 文本节点内容,不是别标签节点
3获取父节点:元素.parentNode;
4其他元素:父元素首尾:父元素.firstchilde 标准会解析换行 (ie不会)
父元素.firstElementchild:标准
元素下一个节点:
nextSibling,nestElementsiblin
元素上一个节点
preriousslibing,preiousElementslibing
操作节点:
creatElement()创建节点
appendchild()父元素末尾加节点
remove()移除自生
removechild(元素):

BOM
alter();弹窗
comfirm()对话框
print()打印
位置:
client:元素大小,元素可视宽高:元素.clientWidth/Height
元素。clientTop/left
offset
元素位置offsetwidth/Height
offsetTop/Left------>到定位父元素位置,父元素未定位,到body
scroll:
滚动距离

window.onscroll=function(){
document.documentElement.scrollTOP||document.body.scrollTop
}

获取表格元素

 var oTab = document.getElementsByTagName("table")[0];

    console.log(oTab.tHead); //获取thead
    console.log(oTab.tFoot); //获取tfoot
    console.log(oTab.tBodies[0]); //获取tbody


    //行
    console.log(oTab.rows); //HTMLCollection(4) [tr, tr, tr, tr]
    console.log(oTab.tBodies[0].rows); //tbody中的行

    //单元格:必须通过行获取
    console.log(oTab.rows[0].cells);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值