如何从显示中排除空的xml节点标签/字段?

时间:2011-08-25 12:43:47

标签: jquery xml jquery-mobile

我有一个jquery ajax调用,它正确地解析信息并将其作为jquery mobile中的可折叠列表显示给用户。我有一个问题,我无法找到解决方案。我已经使用了替换功能但无法使其工作(脚本中的代码如下)。我认为这是我需要走的路。在下面的代码中,我将节点'方法'和'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 :(得分:0)

您可以在字符串中搜索<p>Method: </p><p>Clinical Utility: </p>,如果您想使用替换路线,则可以将其替换为空。我认为你可能最好在检查值是否存在之前将标签和值添加到字符串之前。