JQuery append在IE9和JQuery 1.7.1中不起作用
JQuery append not working in IE9 and JQuery 1.7.1
我正在努力将这个Bootstrap标签插件集成到我的应用程序中。正如你在GitHub项目页面上看到的那样,它与jQuery 1.8.3配合得很好。
我的应用程序正在使用JQuery 1.7.1。它在Chrome中运行得很好,但在IE中却不行(这并不奇怪)。我花了两天时间试图理解为什么没有运气(我是一个jQuery/JS新手)。
我创建了一个jsFiddle,它在IE9中运行时捕获并显示了这个错误。
具体错误为:
SCRIPT438:对象不支持属性或方法"append"
bootstrap-tag.js,第117行,字符5
它指的是这条线/代码:
$('<span class="tag">')
.text(value)
.append($('<button type="button" class="close">×</button>')
.on('click', function () {
that.remove(that.element.siblings('.tag').index($(this).closest('.tag')))
})
)
.insertBefore(that.element)
问题:知道IE9为什么抱怨append
没有被识别吗?
事实上,旧版本的jQuery在IE9的text()函数之后不会返回对jQuery对象的引用。
基本上,解决方案不是使用text函数,而是在创建跨度时附加文本。所以我在第117行的bootstrap-tag.js中改为下面的代码,解决了这个问题。
遵循JS Fiddle解决方案
之前(IE9 Buggy):
$('<span class="tag">')
.text(value)
.append($('<button type="button" class="close">×</button>')
.on('click', function () {
that.remove(that.element.siblings('.tag').index($(this).closest('.tag')))
})
)
.insertBefore(that.element)
之后(固定):
$('<span class="tag">' + value + '</span>')
.append($('<button type="button" class="close">×</button>')
.on('click', function () {
that.remove(that.element.siblings('.tag').index($(this).closest('.tag')))
})
)
.insertBefore(that.element)
希望能有所帮助。
相关文章:
- 自动完成 jquery 不起作用
- 悬停时的Jquery不起作用
- 使用DateTimePicker插件的JQuery不起作用
- 无限滚动jquery不起作用
- 角度2触发器'单击'使用jquery不起作用
- 在 jQuery 不起作用的情况下迭代变量
- 切换下 jquery 不起作用
- 简单的jquery不起作用,并返回错误
- 等效于getElementbyName的jQuery不起作用
- Jquery不起作用,但我想一切都好
- 当按钮从ajax调用时,jquery不起作用
- 在jQuery不起作用的情况下阻止表单提交
- 为什么这个jquery不起作用
- 带有变量选择器的 Jquery 不起作用
- 简单的JavaScript/jQuery不起作用
- Wordpress jquery不起作用(计算系统)
- Django 模板内联 jQuery 不起作用
- 提示计算器 jquery 不起作用
- 追加 jquery 不起作用
- 正则表达式 jQuery 不起作用