- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 Meteor 框架构建一个网站。现在,我正在尝试获取它,以便当我单击 DOM 中的某个元素(通过 handle 呈现)时,新元素会附加到当前单击的元素。我正在使用 jquery 执行此操作,并包含所有正确的包。不幸的是,当我测试我所拥有的内容时,我收到此错误:Uncaught TypeError:无法读取未定义的属性“createDocumentFragment”
。我在网上查了一下,似乎无法弄清楚为什么会发生这种情况。
这里是所有相关代码和注释,以解释我为什么要做我正在做的事情:
类别模板(这是我要附加到的元素):
<template name="category">
<div class="category">
<h2 class="text-center category-title"> {{title}} </h2>
<div class="topics"> </div> <!-- where I want to append -->
</div>
</template>
事件处理代码:
Template.category.events({
'click .category': function(e){
var elem = $(this > '.topics'); //grab div to append to
var category = this;
console.log(elem); //will log what appears to be a jquery object (output below)
for (var i = 0; i < category.topics.length; i++){ //loop to append all new elements
var html = '<div>' + category.topics[i] + '</div>';
elem.append(html); //this is where the error occurs
}
}
})
日志输出:
[true, jquery: "1.11.0", constructor: function, selector: "", toArray: function, get: function…]
有人知道我做错了什么吗?
最佳答案
1)这一行:
var elem = $(this > '.topics')
你这是什么意思?首先,这里的 this
是一个模板数据上下文,不是 DOM 元素,当然也不是选择器字符串。最重要的是,您使用 >
比较,它返回 false
,因此您实际上留下了 $(false)
– 可能不是什么你想要的。
要获取模板 DOM 元素,您应该使用模板方法而不是全局方法。就您而言,最有可能的是:
var elem = t.$('.topics');
编辑:当然,您应该将函数定义为 function(e, t)
以在此处获取模板实例。
2) 你真的不应该以这种方式操作 DOM。您错过了 react 性、模板优化以及 Meteor 已经为您做的一切。 “Meteor 方式”是在模板中包含您需要的 HTML,并通过 react 变量切换它是显示还是隐藏。
关于Jquery问题: Uncaught TypeError: Cannot read property 'createDocumentFragment' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726625/
我对以下示例中的 createDocumentFragment() 有疑问: Click the button to make changes to a list item, using the cr
我正在尝试通过对应用程序中的现有表进行一些更改来重新格式化表。我在互联网上搜索了以下错误,但没有找到任何解决方案。 我收到的错误如下: Cannot read property 'createDocu
我试图从 openwheater 应用程序打印表中的一些 JSON 数据。我在互联网上搜索了解决方案,但找不到真正的解决方案。我是初学者,所以这可能是一个非常简单的错误 希望有人能帮助我走上正确的道路
我正在学习 HTML DOM 模型,但遇到了一个问题。我无法理解 createDocumentFragment() 方法在以下代码中的工作原理。 HTML 代码: CoffeeTea Try i
在一个函数中,我经常创建 DocumentFragment 对象,因此我喜欢在过程完成后将其删除。DocumentFragment 没有父级,因此我无法使用例如: node.parentNode.re
这个问题已经有答案了: Are 'Arrow Functions' and 'Functions' equivalent / interchangeable? (5 个回答) 已关闭 4 年前。 所以
我读到 createDocumentFragment 比在 for 循环中将元素一个一个地附加到 DOM 快得多,例如见here . 我想做什么: 在文档片段中创建一个表列。此列应包含数组中的数字(例
如果您使用 document.createDocumentFragment() 创建一个 DocumentFragment,将子项附加到它,然后将缓冲区附加到某物,缓冲区的所有子项似乎都消失了。示例:
我正在尝试实现 magnific popup 我有以下链接load json 当我单击链接时,灯箱处于加载状态并抛出异常,如下所示 Uncaught TypeError: Cannot call me
我试图找出使用 document.createDocumentFragment 之间的区别与使用 HTML 相比元素。 他们在行为或表现上有区别吗? 最佳答案 两个和 document.create
我正在玩弄一个函数并得到 b.createDocumentFragment is not a function (jQuery) 我的职能是 function tweetCount(url) {
我正在尝试运行此循环,以便创建特定数量的列并向每列添加正方形。目标是在一个循环中完成所有这一切,但我的循环将成功运行一次,然后退出。 function gridBuilder(columns,rows
是否可以在将元素附加到文档之前在 documentFragment 内部通过其 ID 引用元素? 例如: var docFragment = document.createDocumentFragme
我正在尝试将新创建的元素附加到 div,然后将 div 附加到文档片段,但它没有按预期工作。请帮我确定我缺少的东西。 //array of values to look up let channels
如何使用 createDocumentFragment 一次创建七个嵌套的 div 元素? 我想创建一个容器 A,其中包含 A1、A2、A3 和 A4,然后在 A2 中创建 A2a 和 A2b。 注意
我正在尝试获取网页并加载到 bootstrap 2.3.2 弹出窗口中。到目前为止,我有: $.ajax({ type: "POST", url: "AjaxUpdate/getHtml",
在页面启动期间,我尝试向 DOM 添加一个元素。 我有以下代码: $(document).ready(function () { $(document).prepend(""); }); 我已
我想用 Javascript 添加大量 html,当我尝试添加 时出现问题之后一切正常: 这是我的 HTML: 这是我的脚本: var sec_nom='wa'; document.querySe
我目前正在使用 Meteor 框架构建一个网站。现在,我正在尝试获取它,以便当我单击 DOM 中的某个元素(通过 handle 呈现)时,新元素会附加到当前单击的元素。我正在使用 jquery 执行此
据我所知,文档片段的好处是它们不会导致回流事件,直到片段被插入到 DOM 中。听起来很合理,但似乎非 DOM 元素也不会导致重排。 例如: // with document fragment var
我是一名优秀的程序员,十分优秀!