实现一个简单的发送效果(练习)

实现一个发送效果和删除效果

知识点:

        非空验证:用一个判断。

        操作节点:熟悉创建节点document.createElement()

        删除元素:removeChild() 通过父元素删除子元素  ||  remove() 自己删除自己

        添加内容:innerHTML ;

        追加到哪一个标记:appendChild() 追加的内容只能放在已经有的标记后面  || insertBefore() 把新创建的标记追加到已经存在标记的前面

html

        <div class="box">
                <textarea></textarea>
                <button>发送</button>
            <ul>
                <!-- <li>
                    <span>删除</span>
                </li> -->   这里的li我们使用自己动态创建一个
            </ul>
        </div>

css

 *{
    margin: 0;
    padding: 0;
 }
.box{
    width: 400px;
    height: 400px;
    margin: 50px auto;
}
.box textarea{
    width: 400px;
    height: 100px;
    resize: none;
}
.box button{
    float: right;
    width: 100px;
    height: 40px;
    border: none;
    cursor: pointer;
}
.box ul{
    width: 400px;
    height: 35px;
    margin-top: 50px;    
}
.box ul li{
    width: 400px;
    height: 35px;
    list-style: none;
    position: relative;
    line-height: 35px;
    border-bottom: 1px dashed red;
}
.box ul li span{
    position: absolute;
    right: 0;
    cursor: pointer;
}
.box ul li:active{
    display: block;   
}

如上的css 不局限,根据自己需求的样式写,核心是当点击发送按钮后创建li标签,并获取输入的值value

js:

//获取元素
let txt = document.querySelector('textarea')
let btn = document.querySelector('button')
let ul = document.querySelector('ul')   


//绑定事件
btn.οnclick=function(){
    //非空验证
    if(txt.value.trim()==''){
        alert('请输入内容')
        return
    }  

let li=document.createElement('li')
    li.innerHTML=txt.value+'<span>删除</span>'
    // ul.appendChild(li)//追加在前
    let firstli=document.querySelectorAll('li')[0]
    ul.insertBefore(li,firstli)

//点击删除
    let del = document.querySelectorAll('span')
    for(let i= 0;i<del.length;i++){
        del[i].οnclick=function(){
            del[i].parentNode.remove() //删除父元素li
        }
    }
    txt.value=''  //当每次输入完毕发送后清空
}

注意:先把html 和 css 样式写好后再去动态的创建

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现一个记事本的功能,可以使用uniapp提供的指令进行综合练习,以下是一个可能的实现思路: 1. 首先,在pages文件夹下创建一个新的页面,例如Notebook.vue。 2. 在Notebook.vue中,使用uniapp提供的组件来构建记事本的界面。可以使用input组件作为标题输入框,textarea组件作为内容输入框,button组件作为保存按钮。 3. 在data中定义一个notes数组,用来保存用户输入的多条笔记。每一条笔记可以定义为一个对象,包括标题和内容两个属性。 4. 在methods中定义一个saveNote方法,当用户点击保存按钮时触发。在该方法中,可以通过uniapp的api将用户输入的标题和内容保存到notes数组中的一个新对象中,然后将该对象添加到notes数组中。 5. 可以在页面中使用v-for指令来遍历notes数组,渲染出用户保存的所有笔记。 6. 可以使用v-model指令来绑定输入框的值,实现双向数据绑定。当用户输入标题和内容时,即可实时更新data中的属性值。 7. 可以为保存按钮添加一个点击事件,当用户点击保存时,调用saveNote方法将输入的内容保存到notes数组中。 8. 可以使用localStorage等方式将notes数组保存在本地,以实现数据的持久化储存。在组件的created生命周期函数中,可以读取本地存储的notes数组,并将其赋值给data中的notes数组。 9. 最后,可以美化记事本的界面,添加一些样式和动画效果,使其更加符合用户的需求。 通过上述步骤,就可以使用uniapp的指令综合练习实现一个简单的记事本应用。当用户输入标题和内容后,点击保存按钮即可保存笔记,并在页面中展示出来。用户还可以随时编辑和删除已保存的笔记。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值