我正在编写一个jquery脚本时出现问题,因为我无法获取我想要的数据。
我有一个以下布局的xml文件(我只提供一个片段),
<page1>
<title>First page</title>
<description>Lorem ipsum</description>
<image1 thumb='#'>images/image01.jpg</image1>
<image2 thumb ='#'>images/image02.jpg</image2>
</page1>
<page2>
<title>Second page</title>
<description>Lorem ipsum</description>
<image1 thumb='#'>images/image01.jpg</image1>
<image2 thumb ='#'>images/image02.jpg</image2>
</page2>
现在我想找到一种根据标题值获取描述的方法。我的代码就像以下一样,我可以说出一些可怕的错误。
$(document).ready(function() {
$.ajax({
type: "GET",
url: "xml_concept.xml",
dataType: "xml",
success: parseXml
});
});
function parseXml(xml) {
$(xml).find("title":contains("First Page")) {
$("#text-area").append('<div class="test-xml">' + $(this).text() + '</div>');
}
}
我很确定这不是指我想要的,而是整个xml?如果正确,我如何选择我之后的标签内容并附加它们?我已经能够成功地解析内容但不能解决我正在设置的条件,所以我在考虑使用if语句或case / switch。
另一件事,我是否正确地假设我使用':contains'完全错误?
非常感谢您的帮助
答案 0 :(得分:0)
问题出在这一行:
$(xml).find("Title":contains("O2 Brandroom"))
...特别是"Title"
之后的冒号,这是无效的Javascript语法。
此代码的目的是使contains()
位成为Title
的同一选择器的一部分,因此请尝试将整个内容放在引号内:
$(xml).find("Title:contains('O2 Brandroom')")
答案 1 :(得分:0)
通过直接加载外部html内容而不是依赖于一个xml doc,我找到了一种更合适的方法来实现我想要的结果。