【问题标题】:With XML, when does jquery's .attr() and getAttribute() return different results?使用 XML,jquery 的 .attr() 和 getAttribute() 什么时候返回不同的结果?
【发布时间】:2012-11-15 01:05:00
【问题描述】:

我从服务器获取 XML 响应并在 jquery(Chrome 23.0.1271.64 和 Firefox 15.01 上的 jQuery 1.8.2)中解析它以获取各种属性。 3 次中有 2 次按计划工作,但第三次, attr() 调用返回整个元素而不是 attr 值。

举个例子:

$(xmlData).find("template").attr("largeBlockFirst")

返回一个节点数组,其中一个条目的 tagName 为模板,而

$(xmlData).find("template").get(0).getAttribute("largeBlockFirst")

返回一个字符串。

我的理论是,由于某种原因,xmlData 中有一些不同的东西,我无法仅通过序列化它来查看。在每种情况下,我的方法都由 ajax 调用上的成功回调调用。每个响应的内容类型都是 text/xml(总是相同的 url,但以防我每次都检查类型)。

任何想法可能导致 xml 被不同地解析?

【问题讨论】:

  • 你能在 jsfiddle.net 上创建一个例子吗(我想使用一串 xml)
  • 我不确定我能不能。问题是相同的代码响应不同,我无法确定它运行的环境(参数或上下文)有什么不同。你知道这两个返回如此不同答案的任何情况吗?
  • 不,据我了解,.attr() 无论如何都应该返回一个字符串。
  • 嗯,我有新信息,但这真的很奇怪。两种情况的不同之处在于,在一种情况下,我打开了一个 tinymce 编辑器,提取了它的数据并关闭了它。该数据与我从服务器检索的数据无关,但由于某种原因,当我调用 .attr("x") 时,它正在调用 tinyMCE 的 attr 函数。这几乎听起来像是某种命名空间污染......

标签: jquery xml ajax tinymce


【解决方案1】:

看看:http://brian.pontarelli.com/2007/09/12/how-to-get-jquery-and-tinymce-to-work/

您可能想要使用jQuery,而不是使用$,并可能调用jQuery.noConflict

【讨论】:

  • 我没有尝试过,但那会很奇怪,我以前从未遇到过任何问题。我正在使用 tinymce jquery 版本。
【解决方案2】:

事实证明,3.5.4 之前的 tinymce 破坏了 jquery 的 1.7.2 或更新版本。其中一种方法是它破坏了 attr 函数。我升级到最新的tinymce,现在可以正常工作了。希望tinymce升级没有什么让我担心的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多