我有一些看起来像这样的XML:
<closure1>
<topClosure>
<ellipsoidalHead>
<standardComponentData>
<variousElements>
<idNumber>234567</idNumber>
<nominalThickness units="in">0.3750</nominalThickness>
</standardComponentData>
</ellipsoidalHead>
</topClosure>
</closure1>
<shell>
<standardComponentData>
<various_elements>
<nominalThickness units="in">0.6250</nominalThickness>
<idNumber>123456</idNumber>
</standardComponentData>
</shell>
<nozzle>
<standardComponentData>
<various_elements>
<attachedToidNumber>123456</attachedToidNumber>
</standardComponentData>
<nozzle>
在我的JS代码中,我已经将<nozzle>
元素bomNode
作为jQuery集,即
var bomNode = $("nozzle");
因此,对于每个喷嘴元件,我需要
在<attachedToidNumber>
元素中获取<nozzle>
的值。
找到包含匹配的<idNumber>
的元素
<attachedToidNumber>
(在这种情况下为<shell>
)。
<nominalThickess>
中的值
元件。如您所见,所需<idNumber>
元素的深度可能会有所不同。这也是整个XML结构的一个非常小的子集,因此它可能非常大。
我尝试过这样的事情:
var attachedToElement = bomNode.parents().find('idNumber').text() === attachedToId;
但我得到了false
。获得所需idNumber
值的最简单方法是什么?我确定它很简单,但我只是错过了它。
感谢。
更新:我意识到bomNode
处于最高级别,我不需要上去。一个等级。做这样的事
var attachedToElement = bomNode.parents().siblings().find('idNumber')
给我一个包含<idNumber>
元素的子元素列表。所以,我需要找到具有所需值的那个。我的想法是使用.each()
。但是,该值是在.each()
函数之外定义的,所以我没有任何东西可以匹配。获得匹配列表后,获取具有<idNumber>
值的集合的最简单方法是什么?
答案 0 :(得分:1)
你是对的 - 你错过了一件简单的事情:
var colorChangeValue = 50; //set this to whatever is the deciding color change value
var dataset = myChart.data.datasets[0];
for (var i = 0; i < dataset.data.length; i++) {
if (dataset.data[i] > colorChangeValue) {
dataset.backgroundColor[i] = chartColors.red;
}
}
myChart.update();
不是shell
的父级。他们是nozzle
。试试这个:
siblings
但这会返回true(如果为真) - 而不是实际值。