如何通过搜索另一个属性来编写jQuery代码以返回属性值?

时间:2014-07-08 18:39:44

标签: jquery xml

我有一个像这样的xml对象:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
- <fxf version="1.0" data="hold">
  - <report records="168" lines="168" columns="15" rows="168">
    <target format="" version="" type="" destination="HOLD" /> 
    - <column_desc>
      <col colnum="c0" fieldname="FUND_NAME_DISP" datatype="char"/> 
      <col colnum="c1" fieldname="FUND_CODE" datatype="char"/> 
      <col colnum="c2" fieldname="FUND_NAME" datatype="char"/> 
      <col colnum="c3" fieldname="FUND_CODE_2" datatype="char"/> 
      <col colnum="c4" fieldname="FUND_NAME_2" datatype="char"/> 
      <col colnum="c5" fieldname="CURRENCY" datatype="char"/> 
   </column_desc>
  </report>
</fxf>

我需要编写一个jQuery函数,通过搜索“fieldname”属性来返回“colnum”属性。例如

   $.searchCol(myXml,'CURRENCY') will return "c5".

这就是我的草案代码:

$.searchCol = function(xml, search_field_name){
    var colNode  = $('column_desc col', xml).first();
    while(colNode.length){
           if(colNode.attributes['fieldname']==search_field_name){
              return colNode.attributes['colnum'];  
           }
           colNode.next();
    };
    return null
 })

但是colNode.attributes不会返回节点中所有属性的集合。

请帮忙......

1 个答案:

答案 0 :(得分:0)

Demo

function find(where, what) {
    return $($.parseXML(where))
             .find('col[fieldname=' + what + ']')
             .attr('colnum');   
}

console.log(find(xml, 'CURRENCY')); //c5