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>    

これにより正しいデータが生成されますが、1 つの地域に 15 の国がある場合、その 1 つの地域が 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 に答える