我制作的电视指南"从xml文件中获取数据。这就是我到目前为止所拥有的:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "programmes.xml",
dataType: "xml",
error: function (xhr, status, error) {
console.log(status, error);
},
success: function(xml) {
var programmeOne = $(xml).find('programme').first();
$(xml).find('[programme[id="ch1pg1"]').text();
$('.p1').text(programmeOne.find('title').text());
}
});
这就是XML:
<channel id="bbc1" source="Sky" date="20/12/2014">
<programme id="ch1pg1">
<desc>The latest news, sport, business and weather from the BBC's Breakfast team.</desc>
<title>Breakfast</title>
<start>0900</start>
<end>1100</end>
</programme>
<programme id="ch1pg2">
<desc>James Martin presents the weekly cooking show. [HD] [S]</desc>
<title> Kitchen</title>
<start>1100</start>
<end>1200</end>
</programme>
<programme id="ch1pg3">
<desc>descriptions [HD] [S]</desc>
<title>second Kitchen</title>
<start>1200</start>
<end>1300</end>
</programme>
当我删除
$(xml).find('[programme[id="ch1pg1"]').text();
代码有效,但每个频道的所有节目1都使用ch1pg1中的相同标题。
如何使该功能仅使用&#34;标题&#34;来自父元素的元素&#34; program&#34; id为&#34; ch1pg1&#34;?
答案 0 :(得分:1)
首先,当您按id
进行搜索时,您可以使用#
选择器来更快更短。
您的第二行代码不起作用,因为您返回一个字符串,然后尝试在其上使用jQuery方法,这将无法正常工作。而是返回jQuery对象并使用它。试试这个:
success: function(xml) {
var $programmeOne = $(xml).find('#ch1pg1');
$('.p1').text($programmeOne.find('title').text());
}