使用jquery更改xml节点的值

时间:2014-04-03 08:30:14

标签: jquery

这是一个非常简单的问题,但我在过去的4个小时里一直在努力奋斗。我有xml文件(从服务中获取xml)

<?xml version="1.0"?>
<ratepanel>
  <mcx_bid>29500.00</mcx_bid>
  <mcx_ask>29715.00</mcx_ask>
  <mcx_ltp>0.00</mcx_ltp>
  <mcx_open>0.00</mcx_open>
  <mcx_high>30125.00</mcx_high>
  <mcx_low>29539.00</mcx_low>
  <mcx_time>26/02/2014 13:49:47</mcx_time>
  <trade_type>1</trade_type> //it will be 0(or)1(or)2(or)3
</ratepanel>

在极少数情况下,我将xml视为

<?xml version="1.0"?>
<ratepanel>
  <mcx_bid>29500.00</mcx_bid>
  <mcx_ask>29715.00</mcx_ask>
  <mcx_ltp>0.00</mcx_ltp>
  <mcx_open>0.00</mcx_open>
  <mcx_high>30125.00</mcx_high>
  <mcx_low>29539.00</mcx_low>
  <mcx_time>26/02/2014 13:49:47</mcx_time>
  </trade_type>
</ratepanel>

并且我在jquery中使用这个xml,如

$.ajax({                        
            type: "POST",                      
            url: "urlofsource",
            data: "",
            success: function(xmlDoc){
                $("mcx_bid").val(Math.round($(xmlDoc).find('mcx_bid').text()));
                $("mcx_ask").val(Math.round($(xmlDoc).find('mcx_ask').text()));
                        if($(xmlDoc).find('trade_type').text() == 1){
                           -- some activity                         
                        }
                .
                .
                .

如果在xml trade_type节点中包含值意味着我没有任何问题,但xml trade_type节点看起来像(它意味着没有值)意味着如何在jquery中将默认值设置为0。 我试过像

if($(xmlDoc).find('trade_type').text() == ''){
                 $(xmlDoc).find('trade_type').text(0);
                console.log($(xmlDoc).find('trade_type'));
             }

但在控制台打印空值。如何使用jquery为xml节点设置值。请帮助任何人。提前谢谢。

1 个答案:

答案 0 :(得分:0)

if($(xmlDoc).find('trade_type').text() == ''){
    $(this).text('0');
     console.log($(this).text());
}

在console.log中的trade_type选择器的末尾缺少 text()