JS零散知识记录

1):display:none --> 隐藏相应对象(包括对象的物理空间) 相关知识 http://www.w3school.com.cn/htmldom/prop_style_display.asp 

  visibility:hidden --> 隐藏相应对象(但是保留对象的物理空间) 相关知识 http://www.w3school.com.cn/htmldom/prop_style_visibility.asp 

2): substr(N, Count) --> 标示 从字符串的第N个位置开始截取 个数为 Count 的字符串 (遍历字符串中的字符就可以令 Count = 1 去挨个处理)

  substring(N1, N2) --> 标示 从字符串的第N1个位置开始截取到第N2个位置的字符串

3): charCodeAt() --> 标示 将字符转化为ASCII码

  String.fromCharCode(ascii码) --> 标示 将ASCII码转化为字符   相关知识 http://www.cnblogs.com/xuebin/articles/1296837.html

 

4): MVC3中前后台中文字符处理(如果用好Json进行传递数据的话,也可以避免额对多语言进行特殊的处理请看第9条):

    前台Ajax传递带有中文字符的变量: 将传递的变量进行encodeURI重新编码赋值,例如要传递value给后台,那么进行 value = encodeURI(value); 再将变量传给后台。

    后台C#代码进行解析: 接到value后,用Uri.UnescapeDataString(value); 方法,将编码后的value值重新转化为带有中文字符的变量。

 

5):Json字符串与对象之间的转化:

    对象-->字符串:JSON.stringify(jsonobj)。本来是最简便的方法,可是存在浏览器兼容问题(仅适用于IE8+,Chrome 1+,FF 3+)。

    字符串-->对象:JSON.parse(str);

 

6):onchange事件与onpropertychange事件的区别:
    onchange事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发;

    onpropertychange事件却是实时触发,即每增加或删除一个字符就会触发,通过js改变也会触发该事件,但是该事件IE专有。

7):oninput事件与onpropertychange事件的区别:
    oninput事件是IE之外的大多数浏览器支持的事件,在value改变时触发,实时的,即每增加或删除一个字符就会触发,然而通过js改变value时,却不会触发;

    onpropertychange事件是任何属性改变都会触发的,而oninput却只在value改变时触发,

    //oninput要通过addEventListener()来注册,onpropertychange注册方式跟一般事件一样。(此处都是指在js中动态绑定事件,以实现内容与行为分离)

    为了兼容不同浏览器的此操作,那么就把着两个事件都注册上即可(刚刚试过好使)

8):oninput与onpropertychange失效的情况:
    oninput事件:a). 当脚本中改变value时,不会触发;b). 从浏览器的自动下拉提示中选取时,不会触发。

    onpropertychange事件:当input设置为disable=true后,onpropertychange不会触发。

 

9):MVC3中ajax回调基本格式 :

var operData = ...; //传递的参数(action中定义的)

var type = ...;   //传递的参数(action中定义的)

$.ajax({
url: "/..../....",
type: "POST",
data: { operData: operData, type: type },
dataType: "json",
success: function (result) {
  ....
},
error: function () {

  ....
}
});

这里我们把需要传递的参数以 data 列表的形式展现出来,而不是直接在url中显示的附加,如:url: "/..../....?operData=....&type=...",这样就能很好的避免多语言以及特殊字符的问题,不妨一试。

9):JS中判断变量未定义: typeof(obj)=='undefined'

10):js中的replace方法替换string中所有相同的字符:例如:将string中所有的单引号 ' 转义替换成为 \'    --->   str.replace(/\./g, "\\.")

11):js中如果对一个DropDownList添加一个Option 并且其value值带有单引号,那我们可以用全局替换(替换成') 屏蔽单引号截断字符串的影响

     --->  $("<option value='" + optionValue.replace(/\'/g, "&#39;") + "'>" + optionTitle + "</option>").appendTo("#MyDropDownList");

    PS:更多对DropDownList的基本操作请看【http://blog.csdn.net/Feiin/article/details/3896937

原文地址:https://www.cnblogs.com/mingmingruyuedlut/p/2315820.html