Как исключить пустую метку / поле узла xml из отображения? - PullRequest
0 голосов
/ 25 августа 2011

У меня есть вызов 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>

1 Ответ

0 голосов
/ 25 августа 2011

Вы можете найти в вашей строке <p>Method: </p> или <p>Clinical Utility: </p> и заменить их ничем, если хотите пойти по пути замены. Я думаю, что вам, вероятно, лучше проверить, существуют ли значения перед добавлением метки и значения в вашу строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...