Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-14.log failed

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
study:javascript:start [2010/10/29 06:27] bananastudy:javascript:start [2015/02/19 07:07] (現在) – [Add Comma] banana
行 78: 行 78:
 ====== Merge Rowspan ====== ====== Merge Rowspan ======
 <code javascript> <code javascript>
-function cellMergeChk(tableObj, rowIndex, cellIndex) +(function ($) { 
- +    $.extend($.fn, { 
- var rowsCn = tableObj.rows.length; +        version: '0.9.0', 
-  +        rowMerge: function(options{ 
- if(rowsCn-1 > rowIndex) +            return new $.impl(options, this); 
- cellMergeProcess(tableObjrowIndex, cellIndex); +        } 
-+    });
-  +
- function cellMergeProcess(tableObj, rowIndex, cellIndex) +
- +
- var rowsCn = tableObj.rows.length; +
- var compareCellsLen = tableObj.rows[rowIndex].cells.length; //count first rows +
-  +
- //initialization  +
- var compareObj = tableObj.rows[rowIndex].cells[cellIndex]; +
- var compareValue = compareObj.innerHTML; +
- var cn = 1; +
- var delCells = new Array(); +
- var arrCellIndex = new Array(); +
- for(i=rowIndex+1; i < rowsCn; i++) +
-+
- var cellsLen = tableObj.rows[i].cells.length; +
- var bufCellIndex = cellIndex+
  
- //get collIndex of row  +    // constructor 
- if(compareCellsLen != cellsLen)  +    $.impl function(options, target) { 
-+        // merge options 
- bufCellIndex bufCellIndex - (compareCellsLen - cellsLen)+        this.$.extend(true, {}, $.impl.defaults, options); 
-+        this.target target
- cellObj = tableObj.rows[i].cells[bufCellIndex]; +        this.init(); 
-  +    };
- if(compareValue == cellObj.innerHTML) +
- +
-                                //save the number of cell to delete. +
- delCells[cn-1] = tableObj.rows[i];  +
-                                //save the index of row cell. +
- arrCellIndex[cn - 1] bufCellIndex;  +
- cn++; +
-+
- else +
-+
- //merge +
- compareObj.rowSpan = cn; +
-  +
- //delete +
- for(j=0; j < delCells.length; j++) +
- { +
- delCells[j].deleteCell(arrCellIndex[j]); +
- +
-  +
- //initialize  +
- compareObj cellObj+
- compareValue = cellObj.innerHTML; +
- cn = 1; +
- delCells = new Array(); +
- arrCellIndex = new Array(); +
-+
- }+
  
- //merge  +    // implementation 
- compareObj.rowSpan = cn; +    $.extend($.impl, { 
- //delete +        defaults:
- for(j=0j < delCells.lengthj+++            rowIndex: 1, 
- +            cellIndex: [1] 
- delCells[j].deleteCell(arrCellIndex[j]); +        }, 
- +        prototype: { 
- }//+            init: function() { 
 +            // cell length before merging 
 +                this.tdLen = this.target.find('tr:nth-child(' + this.o.rowIndex + ') td').length; 
 +                this.delArrays []; 
 +                this._scan(); 
 +            }, 
 +            _scan: function({ 
 +                var self = this, 
 +                indexArray = self.o.cellIndex; 
 +                $.each(indexArray, function (i, o) 
 +                    self._cellMergeChk(o); 
 +                }); 
 +            }
 +            _cellMergeChk: function(cellIndex) { 
 +                var self = this, 
 +                    $target = $(self.target), 
 +                    options = self.o, 
 +                    cnt = 1, 
 +                    compareObj = $target.find('tr:nth-child(' + options.rowIndex + ') td:nth-child(' + cellIndex + ')');
  
-</code>+                // :gt(0-index) 
 +                $target.find('tr:gt(' + (options.rowIndex - 1) + ')').each(function() { 
 +                    // compare cell's length 
 +                    compareIndex = cellIndex; 
 +                    cellsLen = $(this).find('td').length;
  
 +                    if (self.tdLen != cellsLen) {
 +                        compareIndex = compareIndex - (self.tdLen - cellsLen);
 +                    }
 +                    cellObj = $(this).find('td:nth-child(' + compareIndex + ')');
 +
 +                    if (compareObj.html() == cellObj.html()) {
 +                        self.delArrays[cnt - 1] = cellObj;
 +                        cnt++;
 +                    } else {
 +                        // merge
 +                        self._merge(compareObj);
 +                        // initialize
 +                        compareObj = cellObj;
 +                        self.delArrays = [];
 +                        cnt = 1;
 +                    }//if~else
 +                });
 +            },
 +            _merge: function(mergedCell) {
 +                $.each(this.delArrays, function() {
 +                    $(this).remove();
 +                });
 +                mergedCell.attr('rowspan', this.delArrays.length + 1);
 +            }
 +        }//prototype
 +    });
 +
 +})(jQuery);
 +
 +</code>
  
  
行 153: 行 162:
  
  
-===== Usage ===== 
-#merge first <td> \\ 
-cellMergeChk(document.getElementById("dataList"), 1, 0); \\ 
-#merge second <td> \\ 
-cellMergeChk(document.getElementById("dataList"), 1, 1);  
  
-===== reference ===== +===== Demo ===== 
-http://blog.naver.com/bacchusl?Redirect=Log&logNo=50005631860+link to [[http://jsfiddle.net/loliqoop/vbgt2/14/|jsfiddle]]
  
  
行 166: 行 170:
 ====== Add Comma ====== ====== Add Comma ======
 <code javascript> <code javascript>
-function addComma(number) { +function digits(number) { 
-    number = '' + number+ return (""+ number).replace(/(\d)(?=(\d\d\d)+(?!\d))/g"$1,");
-    if (number.length > 3+
-        var mod = number.length % 3; +
-        var output = (mod > 0 ? (number.substring(0,mod)) : ''); +
-        for (i=0 ; i < Math.floor(number.length / 3); i++) { +
-            if ((mod == 0&& (i == 0)){ +
-                output += number.substring(mod+ 3 * imod + 3 * i + 3); +
-           } else{ +
-                output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3); +
-            } +
-        }//end for     +
-        return (output); +
-     }else{ +
-        return number; +
-       +
 } }
 </code> </code>
 ちなみにカンマを除去するのは次のとおり ちなみにカンマを除去するのは次のとおり
 <code javascript> <code javascript>
-function delComma(value){ +function delcomma(number) { 
-    var str = ''+value; + return number.replace(/\,/g,'');
-    var output=str.replace(/\,/g,'')+
-    return output;+
 } }
- 
 </code> </code>
  
行 261: 行 248:
 </code> </code>
  
 +====== calculation the size of textarea ======
 +textareaに入力した文字列のサイズを測る為に、次のソースを活用できる。
 +<code javascript>
 +String.prototype.size = function() {
 + var _len = (!this) ? 0 : this.length;
 +    var _size = 0;
 +
 +    for (i = 0; i < _len; i++) {
 +    c = this.charCodeAt(i);
 +   
 +        if ((c >= 0x0000) && (c <= 0x007F) ) {
 +        _size++;
 +        } else if(c > 0x07FF){ 
 +        _size += 3;
 +        } else {
 +        _size += 2;
 +        }//if~else
 +    }
 +
 +    return _size;
 +}
 +</code>
 +
 +===== demo page =====
 +<html>
 +<head>
 +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 +<title>demo page for form reset using jQuery</title>
 +
 +<script type="text/javascript" src="./test/js/jquery-1.4.2.js"></script>
 +
 +<script type="text/javascript">
 +String.prototype.size = function() {
 +    var _len = (!this) ? 0 : this.length;
 +    var _size = 0;
 + 
 +    for (i = 0; i < _len; i++) {
 +    c = this.charCodeAt(i);
 + 
 +        if ((c >= 0x0000) && (c <= 0x007F) ) {
 +        _size++;
 +        } else if(c > 0x07FF){ 
 +        _size += 3;
 +        } else {
 +        _size += 2;
 +        }//if~else
 +    }
 + 
 +    return _size;
 +}
 +
 +$(function(){
 +    $("textarea[name='q']").keyup(function(){
 +        $("#console").text(this.value.size());
 +    });
 +});
 +
 +</script>
 +
 +<style type="text/css">
 +#console{
 +   color: #0000FF;
 +   font-weight: bold;
 +}
 +</style>
 +</head>
 +<body>
 +<textarea name="q" cols="50" rows="5"></textarea>
 +<br>
 +<div id="console" style="display:inline-block;">0</div>bytes
 +</body>
 +</html>
 +===== e-mail regexValidator =====
 +eメールの一般的なvalidationの表現式は以下のようです。
 +<code>
 +\\b(^_A-Za-z0-9-(\\._A-Za-z0-9-)*@(A-Za-z0-9-)+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)
 +|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)
 +|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|(\\..{2,3}\\..{2,3}))$)\\b
 +</code>
 ~~DISCUSSION~~ ~~DISCUSSION~~

QR Code
QR Code study:javascript:start (generated for current page)