【问题标题】:Iterating Over <select> Using jQuery + Multi Select使用 jQuery + 多选遍历 <select>
【发布时间】:2009-01-13 10:25:42
【问题描述】:

这并不像人们想象的那么简单。我正在使用一个名为 jQuery MultiSelect 的插件和使用 XSLT 的多个

<xsl:for-each select="RootField">
  <select id="{RootField}" multiple="multiple" size="3">
    <option value=""></option>
    <xsl:for-each select="ChildField">
      <option value="{ChildField}"><xsl:value-of select="ChildField"/></option>
    </xsl:for-each>
  </select>
</xsl:for-each>

随附的 JavaScript 如下:

var selects = document.getElementsByTagName("select");

$.each(selects, function() {
  $(this).multiSelect();
});

这允许我应用 multiSelect();作用于页面上的每一个

这种行为很奇怪,所有其他

有什么想法吗?

【问题讨论】:

    标签: javascript jquery multi-select


    【解决方案1】:

    我以前没有听过“万圣节问题”的标签,但罗伯特可能是对的。
    从 getElementsByTagName 返回的节点列表是动态的,即添加或删除,在这种情况下选择,将在节点列表创建后更改它。

    试试

    //hoping for magic here
    $('select').multiSelect();
    

    $('select').each( function() {
        $(this).multiSelect();
    });
    

    【讨论】:

    • 该死的。我已经尝试了几个小时,你让它变得如此简单! :)
    • 简单是jQuery方式。我喜欢它。
    • 是的。 jQuery 非常有用,因为它允许我们不执行诸如 document.getElementsByTagName 之类的调用,并使用 css 和 xpath 选择器管理所有可以想象的事情!
    【解决方案2】:

    听起来像是 multiSelect 中的万圣节问题 (http://blogs.msdn.com/mikechampion/archive/2006/07/20/672208.aspx),但由于我不知道 multiSelect,我无法确定。

    【讨论】:

      【解决方案3】:

      试试这个:

      jQuery('select').each(function(){selectAll(this.id)});
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-14
        • 2013-05-30
        • 1970-01-01
        • 2013-02-28
        • 1970-01-01
        • 2014-06-30
        • 1970-01-01
        相关资源
        最近更新 更多