javascript以及jquery诡异问题全记录(持续更新)

1 attr("checked","checked")  2.0以后的版本使用该函数改变checkbox的状态不会生效(或者只会生效一次)解决办法有两种,1) 使用prop方法,2)使用this.checked="checked"

2 removeProp("checked") 使用该函数并不能改变checkbox的状态,解决办法有1)removeAttr("checked"), prop("checked",false)

$(dom).animate({scroll:...});在IE浏览器下报错,原因是IE下没有scroll属性,解决办法可以用scrollTop替代scroll

new Date("2012-12-26 14:32:02");在Firefox下是不能转换的,但是new Date("2012/12/26 14:32:02");在Firefox和Chrome下都能转换

5 this变化

var a={
    func:function(){
        console.log(this);
    },
    b:function(){
        var $this = this, f=$this.func;
        f();//打印出来的是window对象
        f.call($this);//打印出来的是a对象
        $this.func();//打印出来的是a对象
    }
}

6 $.each(arr,func); func函数return true, 则each函数continue,继续循环, return false则each函数break,跳出循环
7 $(“body”).scrollTop(0)在firefox中无效, 要使能在firefox中生效,要$(“html,body”).scrollTop(0)

8 jquery的tmpl插件的bug:当你的页面中的某个元素的id和${}中的替换变量相同时,如果你传入的data没有该字段,${}会将上文id与其字段相同的元素作为替换的值。

假设上文中有如下html:

<div id="a"></div>
<p id="b"></p>

假设jquery的模板如下:

<script type="text/x-jquery-tmpl" id="tpl">
  <span>${a}</span>
  <span>${b}</span>
</script>
如果使用

$.tmpl($('#tpl').html(),{});

则会出现如下结果:

<span>[obj HTMLDivElement]</span>
<span>[obj HTMLParagraphElement]</span>

9 数字toString()

123.toString() //SyntaxError: Unexpected token ILLEGA

123..toString()//"123"

123 .toString() //"123"

.123.toString()//"0.123"

10. document.querySelectorAll(":checked") 会取得select中选中的option, 导致jquery中 $(":checked")也会取得select中选中的option。 不知道是bug还是故意这么设计的。

11. text()获取,html()填充问题

<div>&lt;span&gt;hello word &lt;/span&gt;</div> 
以上代码用text获取,html填充之后

var str = $('div').text();
$(selector).html(str);
会把&lt;和&给&gt;转成<和>,即

<div><span>hello word</span></div>

12 extend的问题

var a={x:1,y:2};
var b = $.extend(true/false, a,{x:3}); //b=a={x:3,y:2};
var a={x:1,y:2};
var b = $.extend({},a,{x:3}); //a={x:1,y:2}, b={x:3,y:2}





欢迎关注作者的微信公众号:中国IT热点 (ID: xiunen_z)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值