Safari在Jquery中复制XML节点数据

时间:2012-01-18 10:26:44

标签: jquery xml safari

我有以下javascript代码:

$(xml).find("question").each(function(){ 

if($(this).attr("id") == stage){                                      

    rule1 = $(this).find("sentence[id='1']").text();
    rule2 = $(this).find("sentence[id='2']").text();

}
                                      });

然后我使用.innerHTML将文本粘贴到html文档中的div中。 除了Safari之外,这个过程在所有常见的浏览器中都能很好地工作,其中句子2在div中被复制。

编辑感谢Frédéric的评论,我能够修改现有的XML和代码,以便在Safari中使用它。 修改

旧XML:

<test>
 <question id="1">
  <sentence id="1">Even Odd Odd</sentence>
  <sentence id="2">8 3 5</sentence>
 </question>
 <question id="2">
  <sentence id="1">Odd Odd Odd</sentence>
  <sentence id="2">5 1 7</sentence>
 </question>
 <question id="3">
  <sentence id="1">Even Even Even</sentence>
  <sentence id="2">9 7 3</sentence>
</question>
</test>

新XML:

<test>
 <question id="q1">
  <sentence id="q1s1">Even Odd Odd</sentence>
  <sentence id="q1s2">8 3 5</sentence>
 </question>
 <question id="q2">
  <sentence id="q2s1">Odd Odd Odd</sentence>
  <sentence id="q2s2">5 1 7</sentence>
 </question>
 <question id="q3">
  <sentence id="q3s1">Even Even Even</sentence>
  <sentence id="q3s2">9 7 3</sentence>
</question>
</test>

例如,问题1的输出将是偶数奇数(第1句)

8 3 58 3 5(第2句)

有没有人经历过类似的事情,并且可以提出修复/解决方法?

感谢您的时间。

编辑谢谢Frédéric! 修改

1 个答案:

答案 0 :(得分:-1)

如果您无法更改XML源,并且您的ID不对应于节点索引顺序(如我的情况),请首先使用find('data [id = XX]')获取节点的索引.index() ,以及使用eq()搜索访问text()函数。所以:

$(this).find("sentence").eq($(this).find("sentence[id='2']").index()).text();

希望得到这个帮助。