为了账号安全,请及时绑定邮箱和手机立即绑定

如何动态填写下拉菜单?

如何动态填写下拉菜单?

杨__羊羊 2021-04-12 16:19:30
我得到了一些代码(HTML和JavaScript),该代码创建了一个具有三列和动态行的表。我想有一个基于第一列条目的下拉菜单。因此,在完成我的表格后,应填写下拉菜单。第一列可以有多个相同的条目。因此,有必要在我的下拉菜单中只显示一次。目前,我只有一个静态下拉菜单。请参阅下面的代码。该程序对静态下拉菜单的效果很好。<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">    <table id="myTable">        <colgroup>            <col width="150" style="background-color:red"></col>            <col width="165"></col>        </colgroup>        <tr  style ="background-color:grey">            <th>plane                <select id="modelRangeDropdown" onchange="filterReports()">                    <option selected="selected">All</option>                    <option>number1</option>                    <option>number2</option>                                        </select>                               </th>               <th>Datum</th>            <th>Secret</th>        </tr>        <xsl:for-each select="logstore/plane/trigger">            <tr>                <td><xsl:value-of select="../Name"/></td>                <td><xsl:value-of select="date"/></td>                <td><xsl:value-of select="secret"/></td>            </tr>        </xsl:for-each>    </table>    <script type="text/javascript" src="/../../../filterReports.js"></script>           </body></html></xsl:template></xsl:stylesheet>
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

如果可以使用XSLT 2.0,则可以使用distinct-values和编写xsl:for-each类似的代码


<select id="modelRangeDropdown" onchange="filterReports()">

    <option selected="selected">All</option>

    <xsl:for-each select="distinct-values(logstore/plane/Name)">

        <option value="{.}">

            <xsl:value-of select="." />

        </option>

    </xsl:for-each>

</select>  

另一方面,如果限于XSLT 1.0,则需要使用一种称为Muenchian Grouping的技术。您将这样定义一个键:


<xsl:key name="planes" match="plane/Name" use="." />

然后,要获得不同的值,您可以这样做.....


<select id="modelRangeDropdown" onchange="filterReports()">

    <option selected="selected">All</option>

    <xsl:for-each select="logstore/plane/Name[generate-id() = generate-id(key('planes', .)[1])]">

        <option value="{.}">

            <xsl:value-of select="." />

        </option>

    </xsl:for-each>                    

</select>  


查看完整回答
反对 回复 2021-04-22
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信