javascript - 在 IE7 中插入 HTMLElement 对象后,JQuery .find() 失败

标签 javascript jquery dom internet-explorer-7

我有一对要传递给函数的 HTMLElement 对象。一个是容器 div,第二个附加到容器。这按预期工作。为了以后找到子元素,我给它一个这种类型元素的唯一类(可以有多个)。这也按预期工作。 但是,当我稍后去操作子元素时,jQuery .find(".myClass") 无法返回任何结果。以下代码在 chrome 和 ie8/9 中返回 1,但在 ie7 中返回 0:

$(document).ready(function(){
    var insert = document.createElement("div");
    insert.setAttribute("class","insertedElement");
    insert.appendChild(document.createTextNode("Some Text"));
    $(document.getElementById("container")).append(insert);
    alert($("#container").find(".insertedElement").length);
});

它在 JSFiddle 中:http://jsfiddle.net/tYfqk/

知道这里发生了什么,或者我该如何纠正它?

此外,请原谅上面的人为 $("document.getElementById("container")).append(insert);,这只是为了说明我的对象作为 DOM 元素而不是 jQuery 对象出现。我知道$("#container").append(insert); 在那里会更有意义,但即使您更改该问题仍然存在。

最佳答案

旧版本的 IE 不允许您通过将“类”设置为属性来设置类。请改用 jQuery“addClass”。

$(insert).addClass("insertedElement");

或者只设置“className”属性:

insert.className = "insertedElement";

(“class”这个词在JavaScript中是保留的,所以这个属性就是“className”。)一般来说,像“className”、“id”、“name”、“value”、“type”、“href”这样的东西"等 DOM 元素可以并且(我认为)应该被视为对象属性,而不是属性。

关于javascript - 在 IE7 中插入 HTMLElement 对象后,JQuery .find() 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480802/

相关文章:

javascript - 使用 jQuery 时,何时/为什么要在变量前加上 "$"?

javascript - 为不存在的元素设置值

javascript - 各种Javascript优化项目如何影响DOM性能?

javascript - 将 ddsmoothmenu 子菜单侧更改为左侧

javascript - doc.fromHTML 不是函数 jsPDF

javascript - 当我尝试运行 mocha 测试时未定义工作人员

javascript - 在与按钮相同的 div block 中获取跨度的内部文本

javascript - 我怎样才能实现一个事件监听器的功能

javascript - 使用 Phantom.js 评估,如何获取页面的 HTML?

javascript - CKFinder 产生 : "TypeError: f.config is undefined"