Javascript JQuery append在IE9和JQuery 1.7.1中不起作用

Javascript JQuery append在IE9和JQuery 1.7.1中不起作用,javascript,jquery,twitter-bootstrap,internet-explorer-9,Javascript,Jquery,Twitter Bootstrap,Internet Explorer 9,我正在努力将插件集成到我的应用程序中。正如您在上所看到的,jQuery1.8.3可以很好地工作 我的应用程序使用jquery1.7.1。它在Chrome中工作得很好,但在IE中却不行(一点也不奇怪)。我花了两天时间试图理解为什么运气不佳(我是jQuery/JS新手) 我创建了一个在IE 9中运行时捕获并显示此错误的 具体错误是: SCRIPT438:对象不支持属性或方法“append” bootstrap-tag.js,第117行,字符5 它指的是这一行/代码: $('<span clas

我正在努力将插件集成到我的应用程序中。正如您在上所看到的,jQuery1.8.3可以很好地工作

我的应用程序使用jquery1.7.1。它在Chrome中工作得很好,但在IE中却不行(一点也不奇怪)。我花了两天时间试图理解为什么运气不佳(我是jQuery/JS新手)

我创建了一个在IE 9中运行时捕获并显示此错误的

具体错误是:

SCRIPT438:对象不支持属性或方法“append”

bootstrap-tag.js,第117行,字符5

它指的是这一行/代码:

$('<span class="tag">')
  .text(value)
  .append($('<button type="button" class="close">&times;</button>')
    .on('click', function () {
      that.remove(that.element.siblings('.tag').index($(this).closest('.tag')))
    })
  )
  .insertBefore(that.element)
$(“”)
.文本(值)
.append($(“×;”)
.on('单击',函数(){
that.remove(that.element.sides('.tag').index($(this.closest('.tag')))
})
)
.insertBefore(该.element)
问题:
知道IE9为什么抱怨未识别
append
吗?

事实上,旧版本的jQuery不会在IE9的text()函数之后返回对jQuery对象的引用

基本上,解决方案不是使用text函数,而是在创建span时追加文本。所以我在第117行的bootstrap-tag.js中改为代码bellow,解决了这个问题

遵循

之前(IE9小车):

$(“”)
.文本(值)
.append($(“×;”)
.on('单击',函数(){
that.remove(that.element.sides('.tag').index($(this.closest('.tag')))
})
)
.insertBefore(该.element)
之后(固定):

$(''+值+'')
.append($(“×;”)
.on('单击',函数(){
that.remove(that.element.sides('.tag').index($(this.closest('.tag')))
})
)
.insertBefore(该.element)

希望有帮助。

不要将整个HTML文档复制/粘贴到JSFIDLE中。
的内容进入HTML部分,JavaScript进入JavaScript部分。好吧,您使用的资源不应该以这种方式使用。例如,Github文件不应该被引用——它不是CDN。幸运的是,如果您修改原始文件的URL,这是可能的)。如果您使用正确的URL(我必须更改Prettify CSS和JS,以及Docs CSS URL),IE9不会抛出错误。如果您下载了这些文件并在本地项目/服务器中使用它们,就不会有这个问题。我的结论是:啊,是的,我忘了更改jQuery版本。我很困惑,你指的是哪个版本?您的问题是1.7.3(不存在),但您的JSFIDLE使用1.7.1。所以我假设是1.7.1?有了1.7.1,我现在明白了:这是一个愚蠢的问题,但有什么理由不能升级jQuery的版本吗?我知道这并不能回答这个问题,但是1.7.1现在已经很老了
$('<span class="tag">')
  .text(value)
  .append($('<button type="button" class="close">&times;</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">&times;</button>')
    .on('click', function () {
      that.remove(that.element.siblings('.tag').index($(this).closest('.tag')))
    })
  )
  .insertBefore(that.element)