单击文字显示输入框修改文本

html

	<span id="title" @click="editTitle">{{klArticle.title}}</span>

JS

// An highlighted block
	editTitle:function(element) {
 			var element = document.getElementById('title')
            var oldhtml = element.innerHTML;
            //如果已经双击过,内容已经存在input,不做任何操作
            if(oldhtml.indexOf('type="text"') > 0){
                return;
            }
            //创建新的input元素
            var newobj = document.createElement('input');
            //为新增元素添加类型
            newobj.type = 'text';
            //为新增元素添加value值
            newobj.classList.add("el-input__inner")
            newobj.value = oldhtml;
            //为新增元素添加光标离开事件
            newobj.onblur = function() {
//                    当触发时判断新增元素值是否为空,为空则不修改,并返回原有值
                if(this.value && this.value.trim()!==""){
                    element.innerHTML = this.value == oldhtml ? oldhtml : this.value;
                } else {
                    element.innerHTML = oldhtml;
                }
                vm.klArticle.title = element.innerHTML
            }
            //设置该标签的子节点为空
            element.innerHTML = '';
            //添加该标签的子节点,input对象
            element.appendChild(newobj);
            //设置选择文本的内容或设置光标位置(两个参数:start,end;start为开始位置,end为结束位置;如果开始位置和结束位置相同则就是光标位置)
            newobj.setSelectionRange(0, oldhtml.length);
            //设置获得光标
            newobj.focus();
        },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值