在jQuery中选择一个具有名称空间的节点

Select a node with namespace in jQuery

本文关键字:一个 有名称 空间 节点 jQuery 选择      更新时间:2023-10-01

我使用YQL使用JSONP获取数据,它返回一个XML字符串。我使用$.parseXML解析它,并将它放入jQuery选择器中,然后尝试选择一个节点。然而,它包含一个名称空间(例如yweather:),jQuery似乎无法正常工作

从其他SO的回答中,他们建议使用'':可以解决问题。确实如此,但只有当我收到的数据是XML时(我的数据是使用JSONP的)

$.ajax({
    url: "http://query.yahooapis.com/v1/public/yql",
    data: {
        q: "select item from weather.forecast where location=48907",
        format: "jsonp"
    },
    dataType: "jsonp"
}).success(function(data){
    var xml = $.parseXML(data.results[0]);
    console.log($("yweather'':condition", xml));
});

它与任何东西都不匹配。

无法弄清楚为什么它不工作,其他答案也建议用''逃离:。但它不起作用。所以我尝试过这种方式,而且效果很好。这也等于jQuery的find方法,它正在演示

代码为

  var xml = $.parseXML(data.results[0]);
  xml = $(xml).find('channel item');
  var weatherList = xml.find('*').filter(function(){
     return this.tagName === "yweather:condition";
  });
  console.log(weatherList);

希望这能有所帮助。