0

我正在生成一个单选按钮列表,该列表正在查看包含各个国家和相关地区的项目列表。下面是我的单选按钮的 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 次。

只显示每个区域一次的最佳方式是什么?

4

1 回答 1

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> ');
    }

}

于 2013-06-20T07:28:33.413 回答