使用JQuery对深层XML结构IE9进行迭代
Use JQuery to iterate over deep XML structure - IE9
在JS中,我有一个带有以下XML的变量data
:
<data>
<delivery>
<checklist>Pre-Vehicle Check Bulk</checklist>
<delivery>800056799</delivery>
<shipment>105065995</shipment>
<driverName>John Doe</driverName>
<driverLanguage>NL</driverLanguage>
<country>Belgium</country>
<product>01248741</product>
<productDescription>Metam 200%-33</productDescription>
<location>P0204A</location>
</delivery>
<questions>
<question>
<id>Question-1</id>
<driver>true</driver>
<operator>true</operator>
<isAnswered>false</isAnswered>
<answer/>
<options>
<option>OK</option>
<option>NOK</option>
<option>NA</option>
</options>
</question>
<question>
<id>Question-2</id>
<driver>true</driver>
<operator>false</operator>
<isAnswered>false</isAnswered>
<answer/>
<options>
<option>OK</option>
<option>NOK</option>
</options>
</question>
</questions>
</data>
我正在基于这个XML创建一个JS对象。结果应该是一个包含问题的数组。每个问题都有其属性和一系列选项。因此,基本上与您在questions
标签下的XML中看到的结构相同
以下是生成对象的JS代码:
var questions = [];
$(data).find("question").each(function(){
var options = [];
$(this).find("option").each(function(){
options.push($(this).text());
});
questions.push({
id : $(this).find("id").text(),
driver : $(this).find("driver").text(),
operator : $(this).find("operator").text(),
isAnswered : $(this).find("isAnswered").text(),
answer : $(this).find("answerswer").text(),
title : $(this).find("title").text(),
text : $(this).find("text").text(),
text_driver : $(this).find("text_driver").text(),
options : options
});
});
现在的问题是没有添加选项。从调试器中,我可以看到在第一个.each
之后,<option>
标签被从当前节点this
移除。因此其值为:
<options>OKNOKNA</options>
如何使用JQuery实现跨多个XML级别的循环?
EDIT:它似乎与IE9有关,我需要让它在这个特定的浏览器上工作。
我猜IE9认为这些是位于无效位置的HTML选项元素。
在将其传递给$
之前,请使用jQuery.parseXML()
对其进行解析。
相关文章:
- 如何在javascript中迭代数字列表
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 在ejs-partial中对JSON对象进行迭代
- 如何在DataTables 2.1中迭代对象数组
- 使用递归属性迭代保留属性结构
- 正在停止.在jquery中的特定时间间隔内,每次迭代的每次执行
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 主干-从模板中迭代的集合中获取特定的模型
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 什么's是在javascript中迭代项的最佳方式
- 为什么这只是迭代 HTMLCollection 的奇怪元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- jQuery-迭代不正确?(太长,无法执行)
- 每个$.,循环获胜't逐个迭代HTML元素
- IE9中的迭代顺序不同
- 使用JQuery对深层XML结构IE9进行迭代