У меня есть вызов jquery ajax, который правильно анализирует информацию и показывает ее пользователю в виде сворачиваемого списка в jquery mobile.У меня есть одна проблема, для которой я не могу найти решение.Я поиграл с функцией замены, но не могу заставить ее работать (код ниже в скрипте).Я думаю, что это путь, по которому мне нужно идти.В приведенном ниже коде я извлекаю узлы «method» и «Clinical_utility» и размещаю метки для каждого как просто HTML-текст в ассоциативном массиве.Теперь моя проблема в том, что когда в записи один из этих узлов пуст, я, очевидно, не получаю значения для отображения записи, но все равно получаю метку и поле, отображаемое в виде строки для пользователя.Есть ли способ сделать это с помощью функции замены?
Спасибо за любую помощь / советы.
<script>
$(document).ready(function(){
$.ajax({
type: "GET",
url: "testlist.xml",
dataType: "xml",
success: function(xml) {
var $ul = $("#testList");
var categories = new Object();
var category;
$(xml).find('test').each(function(){
category = $('category', this).text();
if (categories[category] == undefined){
categories[category] = '<h3>' + $('test_code', this).text() + " - " + $('name', this).text() + '</h3>' + '<p>' + "CPT Code(s): " + $('cpt_code', this).text() + '</p><p>' + "Method: " + $('method', this).text() + '</p><p>' + "Clinical Utility: " + $('clinical_utility', this).text() + '</p>';
} else {
categories[category] += ',' + '<h3>' + $('test_code', this).text() + " - " + $('name', this).text() + '</h3>' + '<p>' + "CPT Code(s): " + $('cpt_code', this).text() + '</p><p>' + "Method: " + $('method', this).text() + '</p><p>' + "Clinical Utility: " + $('clinical_utility', this).text() + '</p>';
}
});
for (category in categories) {
$ul.append('<div data-role="header" data-theme="a" id="test-heading"><h1>' + category + '</h1></div>');
var tests = categories[category].split(',');
for (var i=0; i<tests.length; i++){
$ul.append('<li><div data-role="collapsible" data-collapsed="true" data-theme="b">' + tests[i] + '</div></li>');
}
}
function finish() {
jQuery('test-li').remove();
$('Method:[method=""]').each(function() {
$(this).parent('li').html($(this).text());
});
}
}
});
});
</script>