0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法' SumoSelect'

时间:2015-10-27 16:20:39

标签: javascript jquery html sumoselect.js

我尝试针对aspx页面上的select选项元素调用SumoSelect函数时收到上述错误消息。

我的网页上有以下参考资料:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js" type="text/javascript"></script>
<script src="jquery.sumoselect.js"  type="text/javascript"></script>
<link href="sumoselect.css" rel="stylesheet" />

从以下文件中获取文件: https://github.com/HemantNegi/jquery.sumoselect/zipball/master

目前我只在下载项目中包含以下内容:

  1. jquery.sumoselect.js

  2. sumoselect.css

  3. 我的jQuery正确地找到了一个元素:

    <script type="text/javascript">
    $(document).ready(function () {
    
      var elements = document.getElementsByTagName("*");
    
      for (i = 0; i < elements.length; i++) {
        element = elements[i];
        name = element.id;
    
        if (name.match(/FieldId_3/)) {
          $(element).SumoSelect();
        }
      }
    });
    </script>
    

    然而,当它达到$(元素).SumoSelect();它产生错误&#34; 0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法&#39; SumoSelect&#39; &#34;

    我对jQuery / Javascript很新,但尝试了多次尝试调用此函数并传递对象,但是没有一个有效。

    有什么想法可以帮我搞定吗?

    我会感激任何帮助。

3 个答案:

答案 0 :(得分:0)

首先,您正在使用 jQuery ,为什么要使用Vanilla JavaScript来获取DOM元素,并迭代所有集合,只能通过 id 获取一个元素? (id属性在文档中应该是唯一的)

您可以重构代码并仅在符合选择条件的元素上初始化插件:

$(document).ready(function () {
  $('#FieldId_3').SumoSelect();
});

如果没有符合条件的元素,则不会(安全地)初始化插件,因为jQuery返回一个空的 like-array 对象。

显然, id FieldId_3的元素必须是 select 元素,如下所述:https://hemantnegi.github.io/jquery.sumoselect/

答案 1 :(得分:0)

正如其他人所说的那样,运用SumoSelect的方法有点过分,温和地说。

但是,我已经测试了您的代码并且它确实有效,假设jquery.sumoselect.js文件与相关HTML文件位于同一目录中。

那么我建议您的问题是找不到SumoSelect jQuery插件。

但是,修复错误后,您应该按照Nick R建议的方式运行SumoSelect。

答案 2 :(得分:-1)

(我和Malieki一起工作,为了完整性而选择了这个...)经过几个小时的试验和错误,我发现当我注释掉下面的代码时,sumoselect部分开始工作正常。 我们首先尝试使用Saplin.Controls DropDownCheckBoxes,然后找到sumoselect,但我们在同一个aspx中保留了一个控件(对于Saplin)。

    <asp:DropDownCheckBoxes ID="TypeCB" runat="server" OnSelectedIndexChanged="TypeCB_SelectedItemsChanged" AutoPostBack="True" Font-Size="7pt" font-family="Verdana" CssClass="txt_box"
    AddJQueryReference="True" meta:resourcekey="checkBoxes2Resource1" UseButtons="True" UseSelectAllNode="False">  
    <Style2 SelectBoxWidth="160" DropDownBoxBoxHeight="230" DropDownBoxBoxWidth="200" />
    <Texts OkButton="Ok" CancelButton="Cancel" SelectAllNode="ALL" SelectBoxCaption="Type" />
    </asp:DropDownCheckBoxes>

当删除此控件时,相扑jquery的所有内容都开始正常工作。 我只能假设他们之间存在冲突。 感谢大家的帮助,我们都是新手。