技术-js有什么方法代替cloneNode的写法么?

问题描述

js有什么方法代替cloneNode的写法么?
/**
* 鼠标事件:处理下拉框内容显示不全(在遮罩div中无法正常显示效果)
* @param selectObj
/
function FixWidth(selectObj) {
var newSelectObj = document.createElement(""select"");
*
_newSelectObj = selectObj.cloneNode(true);_**
newSelectObj.selectedIndex = selectObj.selectedIndex;
newSelectObj.id = ""newSelectObj"";

    var e = selectObj;    var absTop = e.offsetTop;    var absLeft = e.offsetLeft;    while (e = e.offsetParent) {        absTop += e.offsetTop;        absLeft += e.offsetLeft;    }    with (newSelectObj.style) {        position = ""absolute"";        top = absTop + ""px"";        left = absLeft + ""px"";        width = ""auto"";    }    var rollback = function() {        RollbackWidth(selectObj newSelectObj);    };    if (window.addEventListener) {        newSelectObj.addEventListener(""blur"" rollback false);        newSelectObj.addEventListener(""change"" rollback false);    } else {        newSelectObj.attachEvent(""onblur"" rollback);        newSelectObj.attachEvent(""onchange"" rollback);    }    selectObj.style.visibility = ""hidden"";    document.body.appendChild(newSelectObj);    var newDiv = document.createElement(""div"");    with (newDiv.style) {        position = ""absolute"";        top = (absTop - 10) + ""px"";        left = (absLeft - 10) + ""px"";        width = newSelectObj.offsetWidth + 20;        height = newSelectObj.offsetHeight + 20;        background = ""transparent"";    }    document.body.appendChild(newDiv);    newSelectObj.focus();    var enterSel = ""false"";    var enter = function() {        enterSel = enterSelect();    };    newSelectObj.onmouseover = enter;    var leavDiv = ""false"";    var leave = function() {        leavDiv = leaveNewDiv(selectObj newSelectObj newDiv enterSel);    };    newDiv.onmouseleave = leave;}function RollbackWidth(selectObj newSelectObj) {    selectObj.selectedIndex = newSelectObj.selectedIndex;    selectObj.style.visibility = ""visible"";    if (document.getElementById(""newSelectObj"") != null) {        document.body.removeChild(newSelectObj);    }}function removeNewDiv(newDiv) {    document.body.removeChild(newDiv);}function enterSelect() {    return ""true"";}function leaveNewDiv(selectObj newSelectObj newDiv enterSel) {    if (enterSel == ""true"") {        RollbackWidth(selectObj newSelectObj);        removeNewDiv(newDiv);    }}

解决方案

在js里cloneNode可以直接使用,为什么要替代它呢?

cloneNode方法是克隆节点用的,自己写代码也可以实现

时间: 2024-10-27 19:08:28

技术-js有什么方法代替cloneNode的写法么?的相关文章

twig里使用js变量的方法_php实例

本文实例讲述了twig里使用js变量的方法的方法.分享给大家供大家参考,具体如下: 先看一段代码 <script type="text/javascript"> jQuery(document).ready(function(){ jQuery(#my_input).change(function(){ var value = jQuery(#my_input).val(); jQuery.ajax({ url: {{ path('ParteAccidentes_ajax'

ThinkPHP模版中导入CSS和JS文件的方法_php实例

本文实例讲述了ThinkPHP模版中导入CSS和JS文件的方法.分享给大家供大家参考.具体方法如下: 常用方法 1. css使用link 2. js使用src 用tp自己的导入标签import 导入Public文件夹下面的Js目录中的test.js文件,import标签可以省略type属性,默认就是js的文件 复制代码 代码如下: <import type='js' file='Js.test'> <import type='css' file='Css.test'> 不在Publ

js身份证判断方法支持15位和18位

 这篇文章主要介绍了js身份证判断方法支持15位和18位,需要的朋友可以参考下 代码如下: //HTML页面上要有一个id为identity_card的input输入框,一个id为ipmessage的身份证错误或正确时提示消息的地方  <script>  //身份证验证  $(document).ready(function(){  $("#identity_card").change(function(){  var idcard =$(this).val();  che

在asp中使用js的encodeURIComponent方法

大家知道,在js里encodeURIComponent 方法是一个比较常用的编码方法,但因工作需要,在asp里需用到此方法,查了好多资料,没有很好的方法,最后用了下面这个方法,基本解决了问题. <% Function aspEncodeURIComponent(sStr) aspEncodeURIComponent = myEncodeURIComponent(sStr) %> <script language="javascript" type="text

iframe里面的页面调用父窗口,左右窗口js函数的方法

iframe里面的页面调用父窗口,左右窗口js函数的方法 实现iframe内部页面直接调用该iframe所属父窗口自定义函数的方法. 比如有A窗口,A内有个IFRAME B,B里面的装载的是C页面,这时C要直接调用A里面的一个自定义函数AFUN(); 那么只要在C页面中写如下JS函数就可以了: window.parent.AFUN(); 如果AFUN()有参数也可以直接传递合适的参数进去. 例如: 修改父窗口控件属性 window.parent.document.getElementById('

jquery动态加载js三种方法

 <!-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js");就ok了. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd&qu

jQuery解析XML文件同时动态增加js文件的方法

  本文实例讲述了jQuery解析XML文件同时动态增加js文件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $(function(){ $.ajax({ url: 'js/config/jsConfig.xml', dataType: 'xml', success: function(data){ $(data).find("moduleName").each(function(i,obj)

jquery动态加载js三种方法实例

这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getScript("test.js");就OK了.   复制代码 代码如下: <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dt

前台js调用后台方法

 本文为大家介绍下前台js调用后台方法,下面有个不错的示例,喜欢的朋友可以参考下 1.后台方法  复制代码 代码如下: public string AA(string cc)    {    string dd = "大家好才是真的好";    string message=dd+cc;  return message;    }    前台JS  复制代码 代码如下: function Init() {  var v = "中国";  var s = '<%