关于js的总结
来源:互联网 发布:淘宝上1元秒杀是真的吗 编辑:程序博客网 时间:2024/04/30 15:46
1、如何选出所有选中的checkbox
var $selDes = $('.result-table tbody').find("input:checked");
2、删除单元格中的某一行:
这里是如果某一行中的input被选中,则将该行删除。
$selected.each(function (i,item) { $(this).closest('tr').remove();})
3、定义变量时,一般最好赋予初始值
4、不到万不得已,不要在事件内部再绑定事件,这样会造成重复绑定。
5、
比如说有<tr><td><input type="checkbox"/></td>userid<td></td></tr>如果input被选中,则取出这一行的userid.最好的做法是,在利用freemarker模板的情况下,可以这样写:
<td><input type="checkbox" class="d-choose d-checked" data-pid="${expert.obsUserId!''}"></td><td><a class="userid" href="http://10.1.2.142/u/${expert.obsUserId!''}" target="blank" >${expert.obsUserId!''}</a></td>利用data-pid。然后在遍历的时候取出pid:
$selected = $('.result-table tbody').find('input:checked'); $selected.each(function (i,item) { userids += $(this).data('pid') + ','; });
6.关于禁用按钮的情况
例如:有一个删除按钮,当有type为checkbox的input被选中时,该按钮才可以点击,否则不可点击。
我的做法是:每次有checkbox的状态被改变时,先判断下当前有没有checkbox被选中,有则为该按钮添加一个类名,没有则移除该类名。在添加的类名上为删除按钮添加点击事件和相应的样式
代码如下:
$('.d-checked').on('change', function() { var $self = $(this); var $selDes = $('.result-table tbody').find("input:checked"); if ($selDes.length === 0) { $('.cancel-btn').addClass('disabled'); $('.cancel-btn').removeClass('del-btn'); } else { $('.cancel-btn').removeClass('disabled'); $('.cancel-btn').addClass('del-btn'); } });
添加对应的鼠标样式
.result .disabled { cursor:not-allowed;}.result .del-btn{ cursor:pointer;}
7、在url中拼接字符串时,可以写一个通用的函数
例如:
function getParams(arr){ var province = $province.val() || -1, city = $city.val() || -1, level = $level.val() || -1, minScore = $minScore.val() || -1, maxScore = $maxScore.val() || -1, serviceareaid = $serviceCity.find('option:selected').val() || $serviceProvince.find('option:selected').val() || -1, serviceStatus = $serviceStatus.val() || -1;//下面的判断是:只拼接用户填写的内容,没有填写的内容则不进行拼接。 if( province > 0){ arr.push('province=' + province); } if(city > 0){ arr.push('city=' + city); } if(minScore > -1) { arr.push('minscore=' + minScore); } if(maxScore > -1) { arr.push('maxscore=' + maxScore); } if(serviceareaid >0) { arr.push('serviceareaid=' + serviceareaid); } if(serviceStatus > -1) { arr.push('servicestatus=' + serviceStatus); } return true; }
然后将数组中的内容用&拼接
$('.d-screen').on('click', function() { if(!getParams(paramArr)){ return; } location.href = '/expert/search' + (paramArr.length > 0 ? ('?' + paramArr.join('&')) : '');})
8、关于freemarker的使用
利用freemarker时,因为之前不太会用,所以遇到了一个问题,就是发送请求之后,页面会被刷新,填入的选项都会变成默认值。其实可以让后台把参数利用freemarker返回来,然后填充到对应的选项中。
如下:
<#assign param = "">
<#if searchparam??>
<#assign param = param + '&searchparam' + searchparam>
</#if>
<#if province??>
<#assign param = param + '&province=' + province>
</#if>
<#if city??>
<#assign param = param + '&city=' + city>
</#if>
<#if minscore??>
<#assign param = param + '&minscore=' + minscore>
</#if>
<#if maxscore??>
<#assign param = param + '&maxscore=' + maxscore>
</#if>
<#if serviceareaid??>
<#assign param = param + '&serviceareaid=' + serviceareaid>
</#if>
<#if servicestatus??>
<#assign param = param + '&servicestatus=' + servicestatus>
</#if>
如果是type为text的input,写法如下:
<input type="text" placeholder="最小值" class="context min-score" value="${minscore!''}">
如果是下拉框:
<select class="o-service-status"> <option value="-1" selected>不限</option> <option value="0" <#if servicestatus?? && servicestatus == 0>selected</#if> >未抢单</option> <option value="1" <#if servicestatus?? && servicestatus == 1>selected</#if> >抢单中</option> <option value="2" <#if servicestatus?? && servicestatus == 2>selected</#if>>接单中</option> </select>
如果是动态生成的下拉框:
<select id="d-province" class="city j-province" data-pid="${province!''}">
js的处理如下:
$.each(provinces, function(i, el){ if (el.id == pId) { strSelect = ' selected="selected" '; initCity(el.cities, cId); } else { strSelect = ''; } tmpl = '<option value="' + el.id + '" '+ strSelect+'>' + el.name + '</option>'; ret.push( tmpl ); })
freemarker实现的翻页按钮如下:
<ul class="pagination page-break"> <#if page gt 1> <li class="pl"> <a href="/expert/search/${page-1}?${param}" class="p-btn p-btn-pre btn btn-primary">上一页</a> </li> </#if> <li> <div class="cur"><span class="cur-num">${page!''}</span>/<span class="total-num">${pageNum!''}</span></div> </li> <#if page lt pageNum > <li> <a href="/expert/search/${page+1}?${param}" class="p-btn p-btn-next btn btn-primary">下一页</a> </li> </#if> </ul>
0 0
- 关于js的总结
- 关于js开发的总结
- 关于js跳转的总结
- 关于js的一点总结
- 关于JS接口创建对象的总结
- 关于html ,css, js 的总结
- 关于JS定时器的一些总结
- 关于JS获取时间的总结
- js/jquery关于元素坐标的总结
- js里面关于位置坐标的总结
- JS关于this的思考和总结
- 关于Vue.js的一些总结(1)
- 关于Vue.js的一些总结(2)
- 关于JS和浏览器的一些总结
- 关于js总结
- 关于js的一些常用方法的总结
- 关于JS的this的情况分析和总结
- 关于js正则表达式g,i,m 参数的总结
- POJ-3984-迷宫问题-BFS(广搜)-手写队列
- /var/spool/clientmqueue文件多导致磁盘满
- linux fork 函数
- Android设计中的.9.png
- Android Studio上方便使用butterknife注解框架的偷懒插件Android Butterknife Zelezny
- 关于js的总结
- C++中WINAPI函数参数中的IN和OUT
- 使用Python递归对文件进行相关处理
- Java4Android-面向对象的应用1
- string转换成int的算法
- Android访问权限大全
- 算法竞赛入门经典高精度运算推荐题目
- log4j 日志详解
- Codeforces 560B Gerald is into Art(构造性算法)