day29-JavaScript运用

一、添加删除标签

1.阻止a标签默认行为的方法

a标签有默认的跳转页面的行为,有两种方法可以阻止它的默认行为。

1.<a href="javascript:void(0);"> -> 去除a标签的默认行为

2.evt.preventDefault();


2.去除字符串两边的空白

trim()方法 -> 去除字符串两边的空白


3.动态创建新元素

ocument.createElement() -> 动态创建新元素


4.添加子节点

appendChild()->在末尾添加一个子节点

insertBefore(元素,位置) -> 在指定位置前加入元素


5.文本框中的焦点

input.focus() -> 光标成为文本框中的焦点


6.添加键盘事件

addEventListener('keypress',function(evt){})-> 添加键盘按下弹起事件

代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>添加删除标签</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            #container {
                margin: 20px 50px;
            }
            #fruits li {
                list-style: none;
                width: 200px;
                height: 50px;
                font-size: 20px;
                line-height: 50px;
                background-color: cadetblue;
                color: white;
                text-align: center;
                margin: 2px 0;
            }
            #fruits>li>a {
                float: right;
                text-decoration: none;
                color: white;
                position: relative;
                right: 5px;
            }
            #fruits~input {
                border: none;
                outline: none;
                font-size: 18px;
            }
            #fruits~input[type=text] {
                border-bottom: 1px solid darkgray;
                width: 200px;
                height: 50px;
                text-align: center;
            }
            
            /*~兄弟选择器*/
            #fruits~input[type=button] {
                width: 80px;
                height: 30px;
                background-color: coral;
                color: white;
                vertical-align: bottom;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div id="container">
            <ul id="fruits">
                <li>苹果<a href="">×</a></li>
                <li>香蕉<a href="">×</a></li>
                <li>火龙果<a href="">×</a></li>
                <li>西瓜<a href="">×</a></li>
            </ul>
            <input type="text" name="fruit">
            <input id="ok" type="button" value="确定">
        </div>
        
        <script type="text/javascript">
            var ul = document.getElementById('fruits');
            var input = document.querySelector('#container input[type=text]');
            
            function addItem(){
                //trim() -> 去除字符串两边的空白
                var fruitName = input.value.trim();
                if(fruitName.length > 0){
                    //ocument.createElement() -> 动态创建新元素
                    var li = document.createElement('li');
                    li.textContent = fruitName;
                    var a = document.createElement('a');
                    a.href = '';
                    a.textContent = '×';
                    a.addEventListener('click',removeItem);
                    li.appendChild(a);
                    //appendChild()->添加一个子节点
                    //ul.appendChild(li);
                    
                    //insertBefore(元素,位置) -> 在指定位置前加入元素
                    ul.insertBefore(li,ul.firstChild);
                }
                input.value = '';
                //input.focus() -> 光标成为文本框中的焦点
                input.focus();
            }
            
            function removeItem(evt){
                //阻止事件的默认行为
                evt.preventDefault();
                var a = evt.target || evt.srcElement;
                var li = a.parentNode;
                li.parentNode.removeChild(li);
            }
            
            
            var anchors = document.querySelectorAll('#fruits a');
            for (var i=0; i<anchors.length; i+=1){
                anchors[i].addEventListener('click',removeItem);
            }
            
            
            //添加键盘事件
            input.addEventListener('keypress',function(evt){
                var key = evt.keyCode || evt.which;
                if(key == 13){
                    addItem();
                }
            });
            
            
            var okButton = document.getElementById('ok');
            okButton.addEventListener('click',addItem);
        </script>
    </body>
</html>

测试结果

1.PNG

二、闪烁效果

1.滚动条

overflow: scroll -> 添加滚动条

代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>闪烁效果</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            
            #box{
                width: 800px;
                height: 400px;
                margin: 0 auto;
                margin-top: 50px;
                border: solid black 2px;
                /*滚动条*/
                /*overflow: scroll;*/
                overflow: hidden;
            }
            
            #btn{
                width: 265px;
                margin: 0 auto;
                margin-top: 20px;
                margin-left: 650px;
            }
            
            #btn button{
                width: 100px;
                height: 40px;
                margin-right: 30px;
                background-color: coral;
                font:20px/20px arial;
                color: white;
                border: none;
                outline: none;
            }
            
            .smallBox{
                width: 80px;
                height: 80px;
                border: none;
                float: left;
            }
        </style>
    </head>
    <body>
        <div id="box"></div>
        <div id="btn">
            <button id='add'>添加</button>
            <button id='twinkle'>闪烁</button>
        </div>
        
        <script src="js/randomColor.js" type="text/javascript"></script>
        <script type="text/javascript">
            addButton = document.querySelector('#add');
            addButton.addEventListener('click',function(evt){
                var button = evt.target || evt.srcElement;
                box = button.parentNode.previousElementSibling;
                var div = document.createElement('div');
                div.className = 'smallBox';
                div.style.backgroundColor = randomColor();
                box.appendChild(div);
                
            });
            
            
            twinkleButton = document.querySelector('#twinkle');
            twinkleButton.addEventListener('click',function(evt){
                if(twinkleButton.textContent == '闪烁'){
                    twinkleButton.textContent = '暂停';
                    var buttons = document.querySelectorAll('#box div');
                    timerId = window.setInterval(function(){
                        for (var i=0; i<buttons.length; i++){
                            buttons[i].style.backgroundColor = randomColor();
                        }
                    },100)
                }
                else{
                    twinkleButton.textContent = '闪烁';
                    window.clearInterval(timerId);
                }
            });
        </script>
    </body>
</html>

测试结果

2.PNG

三、作业1

代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>闪烁效果</title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            
            #box{
                width: 800px;
                height: 400px;
                margin: 0 auto;
                margin-top: 50px;
                border: solid black 2px;
                /*滚动条*/
                /*overflow: scroll;*/
                overflow: hidden;
            }
            
            #btn{
                width: 265px;
                margin: 0 auto;
                margin-top: 20px;
                margin-left: 650px;
            }
            
            #btn button{
                width: 100px;
                height: 40px;
                margin-right: 30px;
                background-color: coral;
                font:20px/20px arial;
                color: white;
                border: none;
                outline: none;
            }
            
            .smallBox{
                width: 80px;
                height: 80px;
                border: none;
                float: left;
            }
        </style>
    </head>
    <body>
        <div id="box"></div>
        <div id="btn">
            <button id='add'>添加</button>
            <button id='twinkle'>闪烁</button>
        </div>
        
        <script src="js/randomColor.js" type="text/javascript"></script>
        <script type="text/javascript">
            addButton = document.querySelector('#add');
            addButton.addEventListener('click',function(evt){
                var button = evt.target || evt.srcElement;
                box = button.parentNode.previousElementSibling;
                var div = document.createElement('div');
                div.className = 'smallBox';
                div.style.backgroundColor = randomColor();
                box.appendChild(div);
                
            });
            
            
            twinkleButton = document.querySelector('#twinkle');
            twinkleButton.addEventListener('click',function(evt){
                if(twinkleButton.textContent == '闪烁'){
                    twinkleButton.textContent = '暂停';
                    var buttons = document.querySelectorAll('#box div');
                    timerId = window.setInterval(function(){
                        for (var i=0; i<buttons.length; i++){
                            buttons[i].style.backgroundColor = randomColor();
                        }
                    },100)
                }
                else{
                    twinkleButton.textContent = '闪烁';
                    window.clearInterval(timerId);
                }
            });
        </script>
    </body>
</html>

测试结果

3.PNG

作业2

代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>作业2</title>
        <style>
            #data {
                
                border-collapse: collapse;
                margin: 0 auto;
                position: relative;
                margin-left: 410px;
                margin-top: 50px;
            }
            
            #data td, #data th {
                width: 120px;
                height: 40px;
                text-align: center;
                border: 1px solid black;
            }
            
            #buttons {
                
                position: relative;
                margin-left: 480px;
                margin-top: 30px;
            }
            
            #buttons button{
                width: 100px;
                height: 40px;
                margin-right: 20px;
                border: none;
                outline: none;
                background-color: antiquewhite;
                font: 18px/18px arial;
            }
        </style>
    </head>
    <body>
        <table id="data">
            <caption>数据统计表</caption>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
                <th>身高</th>
                <th>体重</th>
            </tr>
            <tr>
                <td>Item1</td>
                <td>Item2</td>
                <td>Item3</td>
                <td>Item4</td>
                <td>Item5</td>
            </tr>
            <tr>
                <td>Item1</td>
                <td>Item2</td>
                <td>Item3</td>
                <td>Item4</td>
                <td>Item5</td>
            </tr>
            <tr>
                <td>Item1</td>
                <td>Item2</td>
                <td>Item3</td>
                <td>Item4</td>
                <td>Item5</td>
            </tr>
            <tr>
                <td>Item1</td>
                <td>Item2</td>
                <td>Item3</td>
                <td>Item4</td>
                <td>Item5</td>
            </tr>
            <tr>
                <td>Item1</td>
                <td>Item2</td>
                <td><a>Item3</a></td>
                <td>Item4</td>
                <td>Item5</td>
            </tr>
            <tr>
                <td>Item1</td>
                <td>Item2</td>
                <td>Item3</td>
                <td>Item4</td>
                <td><a>Item5</a></td>
            </tr>
        </table>
        <div id="buttons">
            <button id="pretty">美化表格</button>
            <button id="clear">清除数据</button>
            <button id="remove">删单元格</button>
            <button id="hide">隐藏表格</button>
        </div>
        
        <script type="text/javascript">
            //美化表格
            var pretty = document.querySelector('#pretty');
            var lines = document.querySelectorAll('#data tr');
            console.log(lines.length)
            pretty.addEventListener('click',function(){
                for (var i=1;i<lines.length; i+=2){
                    lines[i].style.backgroundColor = 'lightseagreen';
                }
            });
            
            //清除数据
            clear = document.querySelector('#clear');
            var cells = document.querySelectorAll('#data td');
            clear.addEventListener('click',function(){
                for (var i=0; i<cells.length; i++){
                    cells[i].textContent = '';
                }
            });
            
            //删除单元格
            var remove = document.querySelector('#remove');
            remove.addEventListener('click',function(){
                var lines = document.querySelectorAll('#data tr');
                if(lines.length > 1){
                    var tr = lines[lines.length-1];
                    tr.parentNode.removeChild(tr)
                }
            })
            
            //隐藏表格
            var hide = document.querySelector('#hide');
            var table = document.querySelector('#data');
            hide.addEventListener('click',function(){
                table.style.display = 'none';
            })
        </script>
    </body>
</html>

测试结果

4.PNG

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,747评论 1 92
  • 人說去旅行,首要是和誰去,其次才是去哪裡。此次深秋的歐洲之行,地點是同行人心儀的。說到同行四人,(OU生、HP、趙...
    坐看云起時阅读 709评论 1 3
  • 作为教师 知道对学生生气是无能的表现 但是真的控制不住 习惯一塌糊涂 看见懒散就很头疼 爸爸妈妈不管很头疼 在培训...
    教育独行侠阅读 152评论 0 0
  • 谢邀@卡列宁的微笑 探究国富论财富增长的各种途径 题主并不对国富论进行归纳总结,提供一个思路共同探究 解决问题的基...
    编程的厨师阅读 234评论 1 3
  • 背景:上证高涨,上证50创新高。自身关心的房地产在证券市场开始出现积极的变化,受《穷爸爸富爸爸》观点影响,开始介入...
    小虞渊阅读 106评论 0 0