我找到并编辑了此代码,以使用jquery从网页上的在线日历中显示xml提要的元素。有没有办法让我包含条件,以便我可以在节点填充时显示节点的信息,并在节点为空时忽略它?例如,要包含imagepath,imagetext和必要的html来格式化它,但是当没有imagepath和imagetext信息时忽略所有这些?
<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>
答案 0 :(得分:1)
您可能只想在将内容附加到 main 之前添加条件。
if (xml_image != "" && xml_imagetext != "") {
$(".main").append...
}
或者,如果您想要显示不同的内容,请按以下方式执行操作:
var hasImage = xml_image != "" && xml_imagetext != "";
var html = "<div class='event'>" +
((hasImage) ? "<img src='" + xml_image + "' alt='" + xml_imagetext + "' />" : "")
+ "</div>";