博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【代码健壮性】善用data-属性来关联,慎用parent()之类的查找结构
阅读量:6361 次
发布时间:2019-06-23

本文共 1308 字,大约阅读时间需要 4 分钟。

1     $(".minus,target").unbind().click(function(){2             console.log(this);3             var $thisParent = $(this).parent().parent().parent().parent().prev();4             var nowNum = $thisParent.find('input').val();5             console.log(nowNum);6             $(".spinner",$thisParent).spinner("value",nowNum - 1);7             $(this).closest(".form-group").remove();8             $(".spinner-down").trigger("click");9         });
1  $(".minus,target").unbind().click(function(){ 2            3             var currentRow = $(this).closest("[name=spinner_row]"); 4             var $spinner =  $("#" + currentRow.data("relatedSpinner")); 5             var nowNum = $spinner.val(); 6             console.log(nowNum); 7             $spinner.closest(".spinner").spinner("value",nowNum - 1); 8             $(this).closest(".form-group").remove(); 9             $(".spinner-down").trigger("click");10         });

 

上面第一段代码是第一次写的,用了jquery的父元素查找功能特别冗余繁琐并且非常不利于代码的可维护,第二段代码非常好的利用了HTML 5 data- attributes属性

下面是api官网的介绍,介绍的很清楚,以前用的比较少...

 

第二段代码就是把点击模块里面加上一个data-:

var row = '<div class="form-group" name="spinner_row" data-related-spinner="' + $(this).attr('name') + '">'

这个值与要触发的模块的id相同的数据模板值。这样就可以利用点击模块的这个值来调用要触发的模块而不需要根据dom结构来查找,防止html结构的变化导致js代码的失效。

 

 

 

转载于:https://www.cnblogs.com/lijie33402/p/4581478.html

你可能感兴趣的文章
LayuI固定块关闭
查看>>
linux基础命令(4)
查看>>
七夕情人节,赵强老师视频课程全场7.7折!Oracle最低一折!
查看>>
Extjs的文件上传问题
查看>>
以链接克隆方式创建vSphere虚拟机
查看>>
Managed File Transfer and Network Solutions
查看>>
物联网的遐想和展望
查看>>
iphone 软件开发让我们的事业有着一个更大的发展平台
查看>>
iOS自定义控件:自定义TableView、CollectionView空数据占位图
查看>>
如何将一个String和多个String值进行比较
查看>>
Spring Cloud Netflix—如何加入Hystrix
查看>>
extjs链接
查看>>
链表倒数第n个节点
查看>>
最长公共子序列Lcs(打印路径)
查看>>
0618图的整理
查看>>
TextView图文混排
查看>>
监控linux流量python版
查看>>
SQL索引建立遵守六大铁律
查看>>
S老师 破坏神学习
查看>>
webstorm使用帮助(转自http://my.oschina.net/longteng2013/blog/138010),另外有部分内容摘自其它人博客...
查看>>