Vue+jquery实现表格指定列的文字收缩的示例代码


Posted in jQuery onJanuary 09, 2018

本文介绍了Vue+jquery实现表格指定列的文字收缩的示例代码,分享给大家,具体如下:

Vue+jquery实现表格指定列的文字收缩的示例代码

效果很简单,但是写起来真的不容易,因为Vue对于没有React这种前端框架经验的人是不友好的
(少吐槽,多工作,省下时间出去hi)

先说一下我走过的弯路:我之间想通过 v-if 指令去操作这一列

代码是这样的:

<el-table-column width="250" align="center" label="比较基准">
 <template scope="scope">
  <span v-if="isAllTxt">{{getShortStr(scope.row.benchmark)}}</span>
  <span v-else>{{scope.row.benchmark}}</span>
  <i @click="changeTxt" style="margin-left:8px;color: #20a0ff;" class="el-icon-more"></i>
 </template> 
</el-table-column>

changeTxt 方法去改变 isAllTxt这个boolean 从而达到控制长短文字的显示

额,然后每次点击任意一行,这一列所有的文字都改变了。呃呃呃,这样产品绝对不会答应的,你以为是上课全体起立么???

好,我们用原来jquery时代开发的经验,在点击事件中传入 $(this) ,手动改dom

(前提是项目配置了jquery,请转头看:https://3water.com/article/115161.htm,上去,自己动。哦不,自己动手把它配好)

changeTxt($(this))

changeTxt(ref) {
  ref.text(XXX);
}

结果当然是错误:

Vue+jquery实现表格指定列的文字收缩的示例代码

那底下就有同学说是不是jquery导错了???

当然也不是,这里的 this 并不是 dom 的 this,是vue的vm对象,不信的可以在方法中用jquery的 $ 试一下,并不是jquery的锅。

那又有爱思考的小伙伴说我用直接用 this 可以么 ?

changeTxt(this)

Vue+jquery实现表格指定列的文字收缩的示例代码

得到的并不是当前元素的对象,这条路又不通。

那vue中是怎么得到元素的对象的呢???

给元素定义 ref

<span ref="txt">{{getShortStr(scope.row.benchmark)}}</span>

方法中通过 this.$refs['txt'].text(XXX) 改变dom,嗯?

Vue+jquery实现表格指定列的文字收缩的示例代码

引用返回的是什么 ??? 没法操作啊 ,而且返回的这个标签是表格最后一行的数据,哇,乱七八糟,爆炸。

无奈,只能通过最笨的方法,给我们的 span 定义 id ,而且是不同的 id ,用 jquery 获取 id 对应的元素

<el-table-column width="250" align="center" label="比较基准"> 
 <template scope="scope">
   <span :id="scope.row.id">{{getShortStr(scope.row.benchmark)}}</span>
  <i v-if="scope.row.benchmark.length>20" @click="changeTxt(scope.row.benchmark,scope.row.id)" style="margin-left:8px;color: #20a0ff;" class="el-icon-more">
  </i>
 </template>
</el-table-column>

// changeTxt方法:
  changeTxt(txt,id) {
   this.isAllTxt = !this.isAllTxt;
   if(this.isAllTxt){
    $('#'+id).text(txt);
   }else{
    $('#'+id).text(this.getShortStr(txt));
   }
  }

// getShortStr 方法
getShortStr(txt_origin) {
 if(txt_origin.length > 20){
  return txt_origin.substring(0,20);
 }else{
  return txt_origin;
 }
}

搞定是搞定了,但是 jquery 和 vue 的风格是不一样的,混用体验并不是很好,有好的方法请一定留言告诉我,必定送上一句 谢谢 !!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery插件制作 自增长输入框实现代码
Aug 17 jQuery
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
jQuery获取table下某一行某一列的值实现代码
Apr 07 jQuery
jquery加载单文件vue组件的方法
Jun 20 jQuery
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
jquery学习笔记之无new构建详解
Dec 07 jQuery
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
jQuery实现输入框的放大和缩小功能示例
Jul 21 jQuery
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 jQuery
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
Jquery Fade用法详解
Nov 06 jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 #jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 #jQuery
JQuery实现table中tr上移下移的示例(超简单)
Jan 08 #jQuery
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 #jQuery
jQuery+CSS实现的table表格行列转置功能示例
Jan 08 #jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 #jQuery
jQuery中库的引用方法
Jan 06 #jQuery
You might like
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
js几个验证函数代码
2010/03/25 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
Python中的groupby分组功能的实例代码
2018/07/11 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
python实现飞行棋游戏
2020/02/05 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
高中生班主任评语
2014/04/25 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
拾金不昧表扬信
2015/01/16 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python