【问题标题】:append removing quotes附加删除引号
【发布时间】:2010-11-15 09:27:54
【问题描述】:

这是一个相当简单的问题,但我找不到解决方案。 我将一些 xml 写入到页面上的隐藏 div 中,稍后我会阅读它。问题是在写入 div 时删除了一些引号,因此我无法使用 LoadXML 在 IE 中加载使用 xml

这是 XML

<parameters id='XXX'>
<product_id value='YYY'/>
<report_id value='ZZZ'/>
<list>
    <filter_id value='AAA'/>
</list>
<date_begin value='BBB'/>
<date_end value='CCC'/>
<timeframe_id value='DDD'/>
<chart_id value='EEE'/>

我使用了很多不同的方法,但似乎都不起作用,我正在尝试尽可能多地使用 JQUERY 来防止跨浏览器问题,但任何解决方案都可以。

我将 xml 附加到字符串变量 paramString 中,上面使用

var parametersDiv = "<div id='" + reportDivId + "_params' style='visibility: hidden; display: none'>" + paramString + "</div>";

一切顺利。

但是,当我尝试检索它时,在 IE 中删除了 XXX 周围的引号。因此我无法使用 loadXML() 加载它。我可以破解一个解决方案,但我想正确地做到这一点。

任何解决方案都会有所帮助,我已经为此浪费了将近一天的时间。

谢谢

京东

【问题讨论】:

    标签: jquery append quotes


    【解决方案1】:

    您是如何将这些隐藏的 div 插入页面的?大概您正在使用 innerHTML(假设您有一个字符串),但这意味着它正在通过 IE 的 HTML 解析器传递。这会将其转换为(无效的)HTML,当您尝试检索它时,您将看到您描述的属性未加引号的效果(可能还有其他您碰巧没有遇到的副作用......尚未)。

    最好的办法是将返回的 XML 文档的引用(不是其序列化的字符串)保存在一个变量中。

    【讨论】:

      【解决方案2】:

      尝试使用双引号,看看能不能奏效。

      如果没有,另一个解决问题的方法可能是通过 XMLHttpRequest (Ajax) 获取 XML。

      jQuery.ajax({
        url: 'yourUrlThatReturnsXML',
        dataType: 'xml',
        success: function (data, textStatus) {
         $(data); // Your XML
        }
      });
      

      【讨论】:

      • 我不确定双引号是否会起作用,因为它只是错误的第一个参数。发生的事情是我有一个通过 ajax 返回的大型 XML 请求。我正在解析该 xml 并将某些部分放置在页面周围的隐藏 div 中,以便下次我想发出请求时,我可以捎带保存的值。
      • 尝试将 XML 保存为变量中的对象。 var globalXML=$(data);
      • 不幸的是该页面是完全动态的,我不确定是否可以在 javascript 中使用动态变量名。但是我可以创建一个哈希表并将名称与 xml 值一起存储。我会试试的。
      • 这就是我要建议的数组。
      猜你喜欢
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-12
      • 2018-12-15
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多