我想要得到的OBS_VALUE值的Obs标签,有2017-Q4作为TIME_PERIOD值。
下面是我拥有的xml文件的示例:
XML
<Obs TIME_PERIOD="2018-Q1" OBS_VALUE="547289" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A"/>
<Obs TIME_PERIOD="2017-Q4" OBS_VALUE="545905" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A"/>
<Obs TIME_PERIOD="2017-Q3" OBS_VALUE="542169" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A"/>以下是我已经取得的成就(它正在起作用)
JS
var x = Dataval.getElementsByTagName('Obs')[1].getAttributeNode("OBS_VALUE");但我想以另一种方式选择标记:通过它的TIME_PERIOD值。
发布于 2019-10-01 18:25:47
使用jquery,您可以从一组元素中选择具有特定属性的元素:
var tp="2017-Q4"
var x=$('Obs[TIME_PERIOD="'+tp+'"]').attr('OBS_VALUE')
console.log(x)它在控制台中输出: 545905
使用香草javascript,您可以通过以下方法实现相同的目标:
var tp="2017-Q4"
var obs = document.getElementsByTagName('Obs');
for (ob of obs) {
t_p = ob.getAttribute('TIME_PERIOD');
if (t_p === tp) {
// output data
console.log(ob.getAttribute('OBS_VALUE'))
}
}
var tp = "2017-Q4"
var x = $('Obs[TIME_PERIOD="' + tp + '"]').attr('OBS_VALUE')
console.log('jquery: '+x)
var obs = document.getElementsByTagName('Obs');
for (ob of obs) {
t_p = ob.getAttribute('TIME_PERIOD');
if (t_p === tp) {
// Grab the data
console.log('javascript: '+ob.getAttribute('OBS_VALUE'))
}
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<Obs TIME_PERIOD="2018-Q1" OBS_VALUE="547289" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A" />
<Obs TIME_PERIOD="2017-Q4" OBS_VALUE="545905" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A" />
<Obs TIME_PERIOD="2017-Q3" OBS_VALUE="542169" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A" />
https://stackoverflow.com/questions/58189779
复制相似问题