XSLT或JavaScript-删除重复
我正在制作一个单选按钮列表,它查看包含各个国家和相关地区的项目列表。下面是我单选按钮的XSLXSLT或JavaScript-删除重复,javascript,arrays,xslt,distinct,Javascript,Arrays,Xslt,Distinct,我正在制作一个单选按钮列表,它查看包含各个国家和相关地区的项目列表。下面是我单选按钮的XSL <xsl:template match="/"> <div id="filter"> <xsl:call-template name="container" /> </div> </xsl:template> <xsl:template name="container"> <xs
<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次
只有一次显示每个区域的最佳方式是什么?我编写了一个JavaScript函数,将每个唯一的项推送到一个数组中,然后使用该数组填充容器。一切都解决了。谢谢大家的帮助:)
函数removeDuplicates(){
var数组=新数组();
$('#filter>.filter item')。每个(函数(){
var country=$(this.attr('country');
if($.inArray(区域,数组)=-1){
Array.push(区域);
}
});
Array.sort();
var length=Array.length;
对于(变量i=0;i
}我们需要了解您的XML是什么样子,以及更多的XSLT。您好,JLRishe-没有可用的XML。我正在使用一个包含列表的内容管理系统。此列表包含两列,一个国家和一个地区。每个国家都有一个相关区域。我正在使用XSL来显示这些信息。我已经更新了XSL以显示我的完整代码。好吧,我猜您一定知道XML的结构,因为否则您首先就无法编写任何XSLT;)。但无论如何,这听起来很像一个分组问题。您在这里使用的是XSLT1.0还是XSLT2.0?我使用的是存储列表中所有内容的内容管理系统。我可以引用内部列名,这就是XSLT的编写方式。我在这篇文章中找到了另一种方法。谢谢大家的回复。
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> ');
}