如何在jquery中读取对象值

如何在jquery中读取对象值,jquery,Jquery,我想在jquery中读取对象值,但如果我尝试使用文本函数,它会显示为空。代码如下: var param = $(this).find('parameter'); if(param.attr('pathvar')){ var pathvar=param.attr('pathvar'); url=url+'/'+pathvar alert(ur

我想在jquery中读取对象值,但如果我尝试使用文本函数,它会显示为空。代码如下:

var param = $(this).find('parameter');

                  if(param.attr('pathvar')){
                    var pathvar=param.attr('pathvar');
                    url=url+'/'+pathvar
                    alert(url);
                  }
                  var numLow = 0;
                  var numHigh = (param.length-1);                  
                  var adjustedHigh = (parseFloat(numHigh) - parseFloat(numLow)) + 1;
                  var numRand = Math.floor(Math.random()*adjustedHigh) + parseFloat(numLow);   
                      alert(numRand); 
                      alert("here");  
                      alert(param);   
                  var selParamVal = param.eq((numRand)).text();
                   alert(param.eq((numRand)).text());
makeAPIRequest(selParamVal,requestType,url);                                 
                }
          });

        } 
    }  

function makeAPIRequest(reqjson,reqType,url){
    var json = JSON.stringify(reqjson); 

    $.ajax({
         url:url,    
         type:reqType,
         processData: false,  
         contentType:"application/json; charset=utf-8",
             data:reqjson,
         headers:{sm_user:'999999300'},
         success:function(data){
           var resp = JSON.stringify(data);
           var textarea = jQuery('#responseEl');
           textarea.text(resp);  
        },
       error:function(jqXHR, textStatus, errorThrown){
            var textarea = jQuery('#responseEl');
            textarea.text(jqXHR.responseText);
     }
    });

  }
selParamVal是空的。即使我将numRand添加为[numRand],它也不会进行ajax调用 尝试读取此xml:我能够获取url,但在参数中失败

<?xml version="1.0" encoding="UTF-8"?>
<apis xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
    <api name="getFieldType" requesttype ="GET">
         <url>/fieldtype/</url>       
         <parameters>
             <parameter><![CDATA[fieldtype=textbox&fieldId=8668376496495]]></parameter>
             <parameter><![CDATA[fieldtype=number&fieldId=93468613046610]]></parameter>
             <parameter><![CDATA[fieldtype=multiline&fieldId=1367537832000]]></parameter>
          </parameters>
    </api>
</apis>
$(this).find('.parameter');

我想你的问题是这个

$(this).find('parameter');
它既不是标识符,也不是类选择器,也不是元素名

将其更改为相应的选择器。像下面的属性一样,将选择class参数

<?xml version="1.0" encoding="UTF-8"?>
<apis xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
    <api name="getFieldType" requesttype ="GET">
         <url>/fieldtype/</url>       
         <parameters>
             <parameter><![CDATA[fieldtype=textbox&fieldId=8668376496495]]></parameter>
             <parameter><![CDATA[fieldtype=number&fieldId=93468613046610]]></parameter>
             <parameter><![CDATA[fieldtype=multiline&fieldId=1367537832000]]></parameter>
          </parameters>
    </api>
</apis>
$(this).find('.parameter');
更新:我让你的代码工作。问题似乎是$this没有引用xml数据


在ajax调用中,尝试添加dataType:xml,例如:

$.ajax({
     url:url,    
     type:reqType,
     processData: false,  
     contentType:"application/json; charset=utf-8",
     data:reqjson,
     headers:{sm_user:'999999300'},

     dataType:"xml", // add this!
     ...
看看是否有效

如果没有,那么我认为您可能需要使用以下内容获取selParamVal:

var selParamVal = param.eq(numRand).html();
您将从中得到如下结果:,因此您只需要解析出 此外,我注意到以下代码:

var param = $(xml).find('parameter'); // this returns an array of parameters
if(param.attr('pathvar')){            // so this line will always be false
  var pathvar=param.attr('pathvar');
  rl=url+'/'+pathvar
  alert(url);
}
您将需要这样的内容:

var param = $(xml).find('parameter');
param.each(function(i, parameter) {
  if (parameter.attr('pathvar')) {
    var pathvar=param.attr('pathvar');
    rl=url+'/'+pathvar;
    return false;
  }
});

能否显示您的console.logparam。。。?htmlparameter是我的xml@user1195292,你应该在你的问题中说明这一点。我搞错了。我添加了xml作为参考,请帮助我。@user1195292,我想我解决了你的问题。检查我答案中的更新。顺便说一下,我假设你的$this在$this中。查找'parameter';是从服务器返回的xml内容