我正在制作一个单选按钮列表,用于查看包含各个国家和相关区域的项目列表。下面是我的单选按钮的XSL
<xsl:template match="/">
<div id="filter">
<xsl:call-template name="container" />
</div>
</xsl:template>
<xsl:template name="container">
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>
<xsl:for-each select="$Rows">
<xsl:call-template name="group-items"/>
</xsl:for-each>
</xsl:template>
<xsl:template name="group-items">
<label class="region-filter-item" region="{@Region}">
<input type="radio" name="region" class="regionbox">
<xsl:value-of select="@Region"/>
</input>
</label>
这会生成正确的数据,但它也会复制许多区域,因为如果一个区域中有15个国家/地区,则该区域将显示15次。
只展示一次每个地区的最佳方法是什么?
答案 0 :(得分:0)
我编写了一个JavaScript函数,将每个唯一项推送到一个数组中,然后使用该数组填充我的容器。全部解决了。感谢所有帮助人员:))
function removeDuplicates(){
var Array = new Array();
$('#filter > .filter-item').each(function(){
var country = $(this).attr('country ');
if ( $.inArray(region, Array ) == -1 ) {
Array .push(region);
}
});
Array .sort();
var length = Array .length;
for (var i = 0; i < length; i++) {
$('#filter-container').find('.container').append('<label class="filter-item" country="' + Array [i] + '">'
+ '<input type="radio" name="country" class="checkbox">'
+ Array [i] +
'</input>' +
'</label> ');
}
}