jquery中常见问题及解决办法小结
1 在开发开放聊天室的过程中,遇到使用ajax提交表单插入数据库时会插入两条数据的情况
解决办法,在ajax函数返回后,return false.
$("#btn").click(function(){ $.ajax({ do something }); return false; })
2 去除选中元素的某一个属性使用removeattr
3javascript中与时间相关的函数有setInterval("function",millisec[,"lang"])和setTimeout("function",millisec)
和clearTimeout(对象) 清除已设置的setTimeout对象 clearInterval(对象) 清除已设置的setInterval对象。setInterval会自动隔一段时间执行一次函数,返回一个对象,用于clearInterval函数使用,来清除设置。
获取本地时间的函数
function getTime(){ var datTime = new Date(); var sep1 = "-",sep2=":"; var year = datTime.getFullYear(); var mon = datTime.getMonth()+1; var day = datTime.getDate(); var hour = datTime.getHours(); var min = datTime.getMinutes(); var sec = datTime.getSeconds(); time = year + sep1 + mon + sep1 + day + " "+ hour + sep2 + min + sep2 + sec; $("#content1>p").text(time); }
3 前端与后端进行数据交换,经常使用JSON格式的数据进行交换
前端中,将对象转换成字符串的方法是JSON.stringify(obj)。将JSON化的对象字符串转换成对象是JSON.parse(str)。
python进行json格式编码或解码使用dumps和loads或者dump和load到文件。
4 如何解决在ajax方法内使用$(this)不能选中当前元素的问题?
在使用jquery的$.ajax()方法时,需要用户点击界面中的某一个元素,然后提交到后台,后台处理过后,ajax对返回来的数据添加到对应的元素上。当在success内定义的方法上使用$(this)时怎么也改不了数据。后来经过查找原因,可能是在$(this)表示当前元素,而在$.ajax中的函数中相当于变更了上下文环境,所以$(this)不再表示之前的元素。为了能够选中指定的元素需要在调用$.ajax方法前通过一个JQuery变量保存指定元素。
下面是项目中的一个程序片段:
$(".item .part2 .favor").click(function(){ var username = 'allen'; var newid = $(this).parent().parent().attr('newid'); var $current = $(this) $.ajax({ url:'/mybbs/touchfavor/', data:{ username:username, newid:newid, }, type:'POST', success:function(feedbackdata){ var temp = "点赞"+feedbackdata; $current.text(temp); } }); return false; });
5 在使用ajax跳转页面的方法
window.location.href=你要跳转的目标url
6 jquery中javascript代码写法
方法一:简单写法
<script type="text/javascript"> $(function(){ $("#btn").click(function(){ alert("nice"); }); }); </script>
方法二:完整写法
<script type="text/javascript"> $(document).ready(function(){ $("#btn").click(function(){ alert("nice"); }); }); </script>
如果觉得有用,想赞助一下请移步赞助页面:赞助一下