我正在使用一个名为“jParse”的jQuery插件来解析XML文件,如下所示:
$('#content').jParse({
ajaxOpts: {url: 'data.xml'},
elementTag: ['title', 'description'],
output: '<h2>jpet0</h2><p>jpet1</p>'
});
如您所见,“jpet”变量与elementTag数组相关联。
我如何检查jpet var是否包含数据(因为XML中的某些标记为空)并且如果不包含HTML标记则会保留它?
这不起作用:
$('#content').jParse({
ajaxOpts: {url: 'data.xml'},
elementTag: ['title', 'description', 'extra'],
output: if (jpet0) { '<h2>jpet0</h2>' } + '<p>jpet1</p><p>jpet2</p>'
});
但它确实很好地了解了我想要实现的目标。
提前致谢!
答案 0 :(得分:2)
如果我理解正确的文档,这应该有用:
$('#content').jParse({
ajaxOpts: {url: 'data.xml'},
elementTag: [
{elem:'title', format: function(title){
if(title != '') return '<h2>' + title + '</h2>';
else return '';
}}, 'description'],
output: 'jpet0<p>jpet1</p>'
});
答案 1 :(得分:1)
您可以使用三元运算符:
output: (jpet0 ? '<h2>jpet0</h2>' : '') + '<p>jpet1</p><p>jpet2</p>'
但是将HTML字符串放在变量中然后使用常规if
语句预先添加其他HTML会有什么问题?
答案 2 :(得分:0)
似乎jParse不支持这种模板(从usage页面判断;可能是错误的)。然后,一种可能的解决方案是对结果进行后处理,如下所示:
$('#content').remove('h2:empty');
// i.e. removes all empty H2 elements from #content.
当然,您必须确保没有其他地方出现空H2元素。