2012-05-22 6 views
0

J'ai trouvé et modifié ce code pour utiliser jquery pour afficher les éléments d'un flux xml à partir d'un calendrier en ligne sur une page Web. Existe-t-il un moyen pour moi d'inclure des conditions afin que je puisse afficher les informations d'un nœud lorsqu'il est rempli et l'ignorer lorsque le nœud est vide? Par exemple, pour inclure le chemin de l'image, imagetext et html nécessaire pour le formater mais ignorer tout cela quand il n'y a pas d'imagepath et d'information imagetext?Ignorer les nœuds xml vides lorsqu'ils sont vides/jquery

<script> 
$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "http://orion.lib.mi.us/evanced/lib/eventsxml.asp?dm=exml&lib=0&nd=90", 
     dataType: "xml", 
     success: xmlParser, 
     error: function(){alert("We're sorry. Something didn't load correctly.");} 
    }); 
}); 

function xmlParser(xml) { 
    $(xml).find("item").each(function() { 
     var xml_image  = $(this).find('imagepath').text(); 
     var xml_imagetext = $(this).find('imagetext').text(); 
     var xml_title  = $(this).find('title').text(); 
     var xml_date  = $(this).find('date').text(); 
     var xml_time  = $(this).find('time').text(); 
     var xml_location = $(this).find('location').text(); 
     var xml_link  = $(this).find('link').text(); 
     var xml_description = $(this).find('description').text(); 
     $(".main").append('<div class="event"><div class="logo"><img alt="' + xml_imagetext + '" src="' + xml_image + '" /></div><p class="title"><a href="' + xml_link + '">' + xml_title + '</a></p><p class="when">' + xml_date + ' at ' + xml_time + '</p><p class="location">Location: ' + xml_location + '</p><p class="description">' + xml_description + '</p><p class="link"><a href="' + xml_link + '">More Information</a></p></div>'); 
    });} 
</script> 

Répondre

1

Vous pouvez ajouter simplement une condition avant d'ajouter le contenu à principal.

if (xml_image != "" && xml_imagetext != "") { 
    $(".main").append... 
} 

Ou si vous voulez afficher différentes choses, faire quelque chose le long de ces lignes:

var hasImage = xml_image != "" && xml_imagetext != ""; 
var html = "<div class='event'>" + 
    ((hasImage) ? "<img src='" + xml_image + "' alt='" + xml_imagetext + "' />" : "") 
    + "</div>"; 
+0

Merci beaucoup. Je pensais que quelque chose comme ça marcherait mais mes tentatives ont toujours cassé la page. – otplsteve