相关疑难解决方法(0)

是否可以在不破坏后代事件监听器的情况下附加到innerHTML?

在下面的示例代码中,我将onclick事件处理程序附加到包含文本"foo"的span.处理程序是一个匿名函数,弹出alert().

但是,如果我分配给父节点alert(),则此innerHTML事件处理程序将被销毁 - 单击"foo"将无法弹出警告框.

这可以解决吗?

<html>
 <head>
 <script type="text/javascript">

  function start () {
    myspan = document.getElementById("myspan");
    myspan.onclick = function() { alert ("hi"); };

    mydiv = document.getElementById("mydiv");
    mydiv.innerHTML += "bar";
  }

 </script>
 </head>

 <body onload="start()">
   <div id="mydiv" style="border: solid red 2px">
     <span id="myspan">foo</span>
   </div>
 </body>

</html>
Run Code Online (Sandbox Code Playgroud)

html javascript innerhtml dom-events

100
推荐指数
2
解决办法
26万
查看次数

深度克隆与innerHTML的设置:什么更快?

我正在尝试找出在浏览器中深度克隆DOM树的最高效方法.

如果我开始

var div = document.getElementById("source");
var markup = div.innerHTML;
Run Code Online (Sandbox Code Playgroud)

什么会更快,

var target = div.cloneNode(true);
Run Code Online (Sandbox Code Playgroud)

要么

var target = document.cloneNode(false);
target.innerHTML = markup;
Run Code Online (Sandbox Code Playgroud)

我知道浏览器平台可能会在这里产生很大的不同,因此任何关于如何在现实世界中进行比较的信息都将受到赞赏.

javascript dom dhtml

29
推荐指数
1
解决办法
1万
查看次数

createElement()与innerHTML何时使用?

我在sql表中有一些数据.我通过JSON将它发送到我的JavaScript.

从那里我需要将它组成HTML,以便通过2种方式之一向用户显示.

  • 通过编写html字符串并插入hold元素的.innerHTML属性
  • 通过对我需要的每个元素使用createElment()并直接附加到DOM中

以下两个问题都没有给出可量化的答案.

从第一个链接的第一个答案,第三个原因(前两个原因不适用于我的环境)

在某些情况下会更快

有人可以建立一个基础案例,当时createElement()方法更快,为什么?

通过这种方式,人们可以根据自己的环境做出有根据的猜测.

在我的情况下,我不担心保留现有的DOM结构或事件监听器.只是效率(速度).

我没有使用关于我提供的第二个链接的库.但它可以为那些人.


研究/链接

createElement优于innerHTML的优势?

JavaScript:使用innerHTML或(很多)createElement调用来添加复杂的div结构会更好吗?

javascript

9
推荐指数
1
解决办法
4081
查看次数

为什么IE在设置innerHTML时会出现意外错误

我试图在firefox中的一个元素上设置innerHTML并且它工作正常,在IE中尝试它并且出现意外错误,没有明显的原因.

例如,如果您尝试将表的innerHTML设置为"hi from stu",则它将失败,因为该表必须后跟一个序列.

javascript internet-explorer innerhtml

6
推荐指数
2
解决办法
7795
查看次数


设置属性不起作用

我正在制作一个用于表单验证的插件作为实践,但是由于某种原因,在我创建了一个 h2 元素并尝试设置它的属性后,它不起作用。这是代码

    var testing = function(regex, value, error_msg, error_msg_field_id){
        var pattern = new RegExp(regex);
        if (!pattern.test(value)){
            var ele = document.createElement("H2");
            var node = document.createTextNode(error_msg);
            ele.setAttribute('style', 'color:white');
            alert("hi");
            jQuery(error_msg_field_id).append(node);
        }
    }
Run Code Online (Sandbox Code Playgroud)

文本显示没有问题,但不是白色的。这对我来说毫无意义

javascript jquery setattribute

3
推荐指数
1
解决办法
1万
查看次数