domUtils.html2DOM = function(htmlStrs) { var eles = []; var DOC = self.document; var fragment = createSafeFragment(); if (utils.isString(htmlStrs)) { htmlStrs = [htmlStrs]; } utils.each(htmlStrs, function(htmlStr){ if (!rhtml.test(htmlStr)) { //没有标签或特征直接生成textNode eles.push(DOC.createTextNode(htmlStr)); } else { var tagName = (rtagName.exec(htmlStr) || ['', ''])[1], wrapper = wrapMap[tagName] || wrapMap._default;//包裹必要父类,否则innerHTML会忽略一些元素 var div = DOC.createElement('div'); div.innerHTML = wrapper[1] + htmlStr.replace(rselfClosedTag, "<$1></$2>") + wrapper[2]; var ele = div.lastChild; var wrapperDeeps = wrapper[0]; while(wrapperDeeps--) { ele = ele.lastChild; } //添加IE innerHTML会去掉前导空白的bug if (!support.leadingWhitespac && rleadingWhitespace.test(htmlStr)) { eles.push(DOC.createTextNode(rleadingWhitespace.exec(htmlStr)[0])); } //去掉IE<=7 为空table添加的tbody if (support.autoAddtbody && !rtbody.test(htmlStr) && isNodeType(ele, 'table')) { var child = ele.firstChild; while (child) { if (isNodeType(child, 'tbody') && child.childNodes.length === 0) { ele.removeChild(child); break; } child = ele.nextSibling; } } eles.push(ele); for (var i = 0, len = eles.length; i < len; i++) { fragment.appendChild(eles[i]); } } }); return fragment; }
indexOf: function ( bezierPoint ) { var index = -1; if ( this.points.indexOf ) { return this.points.indexOf( bezierPoint ); } else { Utils.each( this.points, function ( point, i ) { if ( point === bezierPoint ) { index = i; return false; } } ); return index; } },
selectPoint: function ( index ) { var shapeGroup = this.pointShapes[ index ]; // 重绘当前点 this._redraw( this.getPointByIndex( index ) ); // 清空其他点的 Utils.each( this.pointShapes, function ( shape, i ) { if ( i !== index ) { this._clearShapePoint( i ); } }, this ); // 更新辅助点 if ( index > 0 ) { this._drawAssistPoint( index-1 ); } },