<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java學習

    java學習

     

    javascript技巧

    1  Javascript數組轉換為CSV格式


    首先考慮如下的應用場景,有一個Javscript的字符型(或者數值型)數組,現在需要轉換為以逗號分割的CSV格式文件。則我們可以使用如下的小技巧,代碼如下:

    1. var fruits = ['apple', 'peaches', 'oranges', 'mangoes'];
    2.  var str = fruits.valueOf();

     


    輸出:apple,peaches,oranges,mangoes


    其中,valueOf()方法會將Javascript數組轉變為逗號隔開的字符串。要注意的是,如果想不使用逗號分割,比如用|號分割,則請使用join方法,如下:

    1. var fruits = ['apple', 'peaches', 'oranges', 'mangoes'];
    2. var str = fruits.join("|");

    輸出: apple|peaches|oranges|mangoes


    2 將CSV格式重新轉換回Javscript數組


    那么如何將一個CSV格式的字符串轉變回Javascript數組呢?可以使用split()方法,就可以使用任何指定的字符去分隔,代碼如下:

    1. var str = "apple, peaches, oranges, mangoes";
    2.  var fruitsArray = str.split(",");

     


    輸出 fruitsArray[0]: apple


    3 根據索引移除數組中的某個元素


    假如需要從Javascript數組中移除某個元素,可以使用splice方法,該方法將根據傳入參數n,移除數組中移除第n個元素(Javascript數組中從第0位開始計算)。

    1. function removeByIndex(arr, index) {
    2. arr.splice(index, 1);
    3. }
    4. test = new Array();
    5. test[0] = 'Apple';
    6. test[1] = 'Ball';
    7. test[2] = 'Cat';
    8. test[3] = 'Dog';
    9. alert("Array before removing elements: "+test);
    10. removeByIndex(test, 2);
    11. alert("Array after removing elements: "+test);

     


    則最后輸出的為Apple,Ball,Dog


     


    4 根據元素的值移除數組元素中的值


    下面這個技巧是很實用的,是根據給定的值去刪除數組中的元素,代碼如下:

    1. function removeByValue(arr, val) {
    2. for(var i=0; i<arr.length; i++) {
    3. if(arr[i] == val) {
    4. arr.splice(i, 1);
    5. break;
    6. }
    7. }
    8. }
    9. var somearray = ["mon", "tue", "wed", "thur"]
    10. removeByValue(somearray, "tue");
    11. //somearray 將會有的元素是 "mon", "wed", "thur"

     


    當然,更好的方式是使用prototype的方法去實現,如下代碼:

    1. Array.prototype.removeByValue = function(val) {
    2. for(var i=0; i<this.length; i++) {
    3. if(this[i] == val) {
    4. this.splice(i, 1);
    5. break;
    6. }
    7. }
    8. }
    9. //..
    10. var somearray = ["mon", "tue", "wed", "thur"]
    11. somearray.removeByValue("tue");

     


    5 通過字符串指定的方式動態調用某個方法


    有的時候,需要在運行時,動態調用某個已經存在的方法,并為其傳入參數。這個如何實現呢?下面的代碼可以:

    1. var strFun = "someFunction"; //someFunction 為已經定義的方法名
    2. var strParam = "this is the parameter"; //要傳入方法的參數
    3. var fn = window[strFun];
    4. //調用方法傳入參數
    5. fn(strParam);

     


    6 產生1N的隨機數

    1. var random = Math.floor(Math.random() * N + 1);
    2. //產生1到10之間的隨機數
    3. var random = Math.floor(Math.random() * 10 + 1);
    4. //產生1到100之間的隨機數
    5. var random = Math.floor(Math.random() * 100 + 1);

     


    7 捕捉瀏覽器關閉的事件


    我們經常希望在用戶關閉瀏覽器的時候,提示用戶要保存尚未保存的東西,則下面的這個Javascript技巧是十分有用的,代碼如下:

    1.  <script language="javascript">
    2. function fnUnloadHandler() {
    3. alert("Unload event.. Do something to invalidate users session..");
    4. }
    5. </script>
    6. <body onbeforeunload="fnUnloadHandler()">
    7. ………
    8. </body>

    --

     


    就是編寫onbeforeunload()事件的代碼即可

    8  檢查是否按了回退鍵


    同樣,可以檢查用戶是否按了回退鍵,代碼如下:

    1. window.onbeforeunload = function() {
    2. return "You work will be lost.";
    3. };

     


    9  檢查表單數據是否改變


    有的時候,需要檢查用戶是否修改了一個表單中的內容,則可以使用下面的技巧,其中如果修改了表單的內容則返回true,沒修改表單的內容則返回false。代碼如下:

    1. function formIsDirty(form) {
    2. for (var i = 0; i < form.elements.length; i++) {
    3. var element = form.elements[i];
    4. var type = element.type;
    5. if (type == "checkbox" || type == "radio") {
    6. if (element.checked != element.defaultChecked) {
    7. return true;
    8. }
    9. }
    10. else if (type == "hidden" || type == "password" ||
    11. type == "text" || type == "textarea") {
    12. if (element.value != element.defaultValue) {
    13. return true;
    14. }
    15. }
    16. else if (type == "select-one" || type == "select-multiple") {
    17. for (var j = 0; j < element.options.length; j++) {
    18. if (element.options[j].selected !=
    19. element.options[j].defaultSelected) {
    20. return true;
    21. }
    22. }
    23. }
    24. }
    25. return false;
    26. }
    27. window.onbeforeunload = function(e) {
    28. e = e || window.event;
    29. if (formIsDirty(document.forms["someForm"])) {
    30. // IE 和 Firefox
    31. if (e) {
    32. e.returnValue = "You have unsaved changes.";
    33. }
    34. // Safari瀏覽器
    35. return "You have unsaved changes.";
    36. }
    37. };

    10  完全禁止使用后退鍵


    下面的技巧放在頁面中,則可以防止用戶點后退鍵,這在一些情況下是需要的。代碼如下:

    1. <SCRIPT type="text/javascript">
    2. window.history.forward();
    3. function noBack() { window.history.forward(); }
    4. </SCRIPT>
    5. </HEAD>
    6. <BODY onload="noBack();"
    7. onpageshow="if (event.persisted) noBack();" onunload="">

     


    11 刪除用戶多選框中選擇的項目


    下面提供的技巧,是當用戶在下拉框多選項目的時候,當點刪除的時候,可以一次刪除它們,代碼如下:

    1. function selectBoxRemove(sourceID) {
    2. //獲得listbox的id
    3. var src = document.getElementById(sourceID);
    4. //循環listbox
    5. for(var count= src.options.length-1; count >= 0; count--) {
    6. //如果找到要刪除的選項,則刪除
    7. if(src.options[count].selected == true) {
    8. try {
    9. src.remove(count, null);
    10. } catch(error) {
    11. src.remove(count);
    12. }
    13. }
    14. }
    15. }

     


    12  Listbox中的全選和非全選


    如果對于指定的listbox,下面的方法可以根據用戶的需要,傳入true或false,分別代表是全選listbox中的所有項目還是非全選所有項目,代碼如下:

    1. function listboxSelectDeselect(listID, isSelect) {
    2. var listbox = document.getElementById(listID);
    3. for(var count=0; count < listbox.options.length; count++) {
    4. listbox.options[count].selected = isSelect;
    5. }
    6. }

    13 Listbox中項目的上下移動

    下面的代碼,給出了在一個listbox中如何上下移動項目

    1. unction listbox_move(listID, direction) {
    2. var listbox = document.getElementById(listID);
    3. var selIndex = listbox.selectedIndex;
    4. if(-1 == selIndex) {
    5. alert("Please select an option to move.");
    6. return;
    7. }
    8. var increment = -1;
    9. if(direction == 'up')
    10. increment = -1;
    11. else
    12. increment = 1;
    13. if((selIndex + increment) < 0 ||
    14. (selIndex + increment) > (listbox.options.length-1)) {
    15. return;
    16. }
    17. var selValue = listbox.options[selIndex].value;
    18. var selText = listbox.options[selIndex].text;
    19. listbox.options[selIndex].value = listbox.options[selIndex + increment].value
    20. listbox.options[selIndex].text = listbox.options[selIndex + increment].text
    21. listbox.options[selIndex + increment].value = selValue;
    22. listbox.options[selIndex + increment].text = selText;
    23. listbox.selectedIndex = selIndex + increment;
    24. }
    25. //..
    26. //..
    27. listbox_move('countryList', 'up'); //move up the selected option
    28. listbox_move('countryList', 'down'); //move down the selected option

     

    14 在兩個不同的Listbox中移動項目

    如果在兩個不同的Listbox中,經常需要在左邊的一個Listbox中移動項目到另外一個Listbox中去,下面是相關代碼:

    1. function listbox_moveacross(sourceID, destID) {
    2. var src = document.getElementById(sourceID);
    3. var dest = document.getElementById(destID);
    4. for(var count=0; count < src.options.length; count++) {
    5. if(src.options[count].selected == true) {
    6. var option = src.options[count];
    7. var newOption = document.createElement("option");
    8. newOption.value = option.value;
    9. newOption.text = option.text;
    10. newOption.selected = true;
    11. try {
    12. dest.add(newOption, null); //Standard
    13. src.remove(count, null);
    14. }catch(error) {
    15. dest.add(newOption); // IE only
    16. src.remove(count);
    17. }
    18. count--;
    19. }
    20. }
    21. }
    22. //..
    23. //..
    24. listbox_moveacross('countryList', 'selectedCountryList');

     

    15 快速初始化Javscript數組

    下面的方法,給出了一種快速初始化Javscript數組的方法,代碼如下:

    1. var numbers = [];
    2. for(var i=1; numbers.push(i++)<100;);
    3. //numbers = [0,1,2,3 ... 100]
    4. 使用的是數組的push方法

     

    16 截取指定位數的小數

    如果要截取小數后的指定位數,可以使用toFixed方法,比如:

    1. var num = 2.443242342;
    2.  alert(num.toFixed(2)); // 2.44
    3. 而使用toPrecision(x)則提供指定位數的精度,這里的x是全部的位數,如:
    4. num = 500.2349;
    5.  result = num.toPrecision(4);//輸出500.2

     

    17 檢查字符串中是否包含其他字符串

    下面的代碼中,可以實現檢查某個字符串中是否包含其他字符串。代碼如下:

    1. if (!Array.prototype.indexOf) {
    2. Array.prototype.indexOf = function(obj, start) {
    3. for (var i = (start || 0), j = this.length; i < j; i++) {
    4. if (this[i] === obj) { return i; }
    5. }
    6. return -1;
    7. }
    8. }
    9. if (!String.prototype.contains) {
    10. String.prototype.contains = function (arg) {
    11. return !!~this.indexOf(arg);
    12. };
    13. }

     

    在上面的代碼中重寫了indexOf方法并定義了contains方法,使用的方法如下:

    1. var hay = "a quick brown fox jumps over lazy dog";
    2. var needle = "jumps";
    3. alert(hay.contains(needle));

     

    18 去掉Javscript數組中的重復元素

    下面的代碼可以去掉Javascript數組中的重復元素,如下:

    1. function removeDuplicates(arr) {
    2. var temp = {};
    3. for (var i = 0; i < arr.length; i++)
    4. temp[arr[i]] = true;
    5. var r = [];
    6. for (var k in temp)
    7. r.push(k);
    8. return r;
    9. }
    10. //用法
    11. var fruits = ['apple', 'orange', 'peach', 'apple', 'strawberry', 'orange'];
    12. var uniquefruits = removeDuplicates(fruits);
    13. //輸出的 uniquefruits ['apple', 'orange', 'peach', 'strawberry'];

     

    19 去掉String中的多余空格

    下面的代碼會為String增加一個trim()方法,代碼如下:

    1. if (!String.prototype.trim) {
    2. String.prototype.trim=function() {
    3. return this.replace(/^\s+|\s+$/g, '');
    4. };
    5. }
    6. //用法
    7. var str = " some string ";
    8. str.trim();
    9. //輸出 str = "some string"

     

    20 Javascript中的重定向

    在Javascript中,可以實現重定向,方法如下:

    1. window.location.href = "http://viralpatel.net";

     

    21 對URL進行編碼

    有的時候,需要對URL中的傳遞的進行編碼,方法如下:

    1. var myOtherUrl =
    2. "http://example.com/index.html?url=" + encodeURIComponent(myUrl);

    --



    posted on 2013-07-31 16:17 楊軍威 閱讀(186) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一级做性色a爰片久久毛片免费| 亚洲国产超清无码专区| 免费精品视频在线| 日韩毛片无码永久免费看| 亚洲午夜无码久久| 日本无吗免费一二区| 亚洲AV噜噜一区二区三区| 免费国产精品视频| 一级毛片无遮挡免费全部| 中文字幕亚洲图片| 久久精品视频免费播放| 亚洲精品**中文毛片| 成人激情免费视频| 国产精品亚洲va在线观看 | 在线观看成人免费视频不卡| 亚洲日本香蕉视频| 成人免费无码大片A毛片抽搐| 亚洲色大18成人网站WWW在线播放| 免费无码黄动漫在线观看| 国产精品亚洲五月天高清| 国产亚洲午夜高清国产拍精品 | 亚洲视频网站在线观看| 无码区日韩特区永久免费系列| 亚洲宅男精品一区在线观看| 日日操夜夜操免费视频| 中文字幕在线视频免费| 久久精品九九亚洲精品| 无码视频免费一区二三区| 一本久久免费视频| 亚洲综合精品香蕉久久网97| 手机在线毛片免费播放| 一级a性色生活片久久无少妇一级婬片免费放 | 久久久亚洲欧洲日产国码二区| 在线a级毛片免费视频| 青青免费在线视频| 亚洲AV无码一区二区乱子伦| 国产精品久久久久免费a∨| 黄色一级视频免费| 亚洲精品国产成人| 亚洲国产中文字幕在线观看| 97视频免费观看2区|