尝试使用Jquery在xml中使用attr检查父元素的存在性
我试图创建一个if语句,检查外部xml中是否存在具有特定id的父级。如果它存在,我希望它编写它,如果它不存在,我希望它在html中回显默认文本。我让它返回[Object][Object],但是如果我从xml中删除父对象,我就不能让它运行else语句。有什么想法吗尝试使用Jquery在xml中使用attr检查父元素的存在性,jquery,ajax,xml,Jquery,Ajax,Xml,我试图创建一个if语句,检查外部xml中是否存在具有特定id的父级。如果它存在,我希望它编写它,如果它不存在,我希望它在html中回显默认文本。我让它返回[Object][Object],但是如果我从xml中删除父对象,我就不能让它运行else语句。有什么想法吗 function xml() { $(document).ready(function(){ $("div").append("<ul></ul>"); $.ajax({ type
function xml() {
$(document).ready(function(){
$("div").append("<ul></ul>");
$.ajax({
type: "GET",
url:"xml.xml",
dataType: "xml",
success: function(d) {
$(d).find('parent[id="1111"]').each(function(){
if ($(this) != undefined){
document.write('<li<b>something</b>'
+$(this).find("id").text()
+'</li><li><b>else </b>'+
$this).find("Status").text()
+'</li>';
}
else{
document.write('<li id="1104"><b>something:</b>'
+' 1104</br><li><b>else:</b> Down ');}
})
}
})
});
}
<root>
<parent id="1111">
<child> Hello World</child
</parent>
</root>
函数xml(){
$(文档).ready(函数(){
$(“div”)。追加(“”);
$.ajax({
键入:“获取”,
url:“xml.xml”,
数据类型:“xml”,
成功:功能(d){
$(d).find('parent[id=“1111”]”)。每个(函数(){
如果($(此)!=未定义){
document.write(“您正在解析XML,就像它是HTML一样。取而代之的是使用。然后您的
查找应该可以工作。您不需要每个:
success: function(d) {
var elm = $($.parseXML(d).find('parent[id="1111"]'));
if (elm[0]) {
// Found it
} else {
// Didn't find it
}
}
另外,请注意,在页面的主解析完成后调用document.write
几乎从来都不是一个好主意:它通过隐式调用document.open
来彻底清除页面。您可能想使用jQuery的append
,appendTo
,prepend
,de>prependTo
等
另外,$(“div”).append(
”;
将在页面上的每个div
中添加一个ul
下面是一个将列表附加到一个特定div的示例。我将其调用两次,一次使用包含元素的XML,一次使用不包含元素的XML:
功能fakeAjaxResponse(目标,d){
var ul=$(“”)。附录(目标);
var elm=$($.parseXML(d)).find('parent[id=“1111”]”);
if(elm[0]){
//找到了
$(“- ”).text(“找到元素:+elm.text()).appendTo(ul);
}否则{
//我没找到
$(“
- ”).text(“未找到元素”).appendTo(ul);
}
}
fakeAjaxResponse(
“#第一个结果”,
“我是1111”
);
fakeAjaxResponse(
“#第二个结果”,
“我是1122”
);
请同时粘贴xml结构。我建议您从当前任务中退一步,从头到尾阅读。这只需要一两个小时,并且会立即回报您。浏览一些jQuery教程可能也很有用。这与PHP无关,我已经删除了PHP
标记。