HtmlDivElement没有方法'indexOf'

时间:2011-09-02 18:07:29

标签: javascript jquery

我试图从这个元素中派生出一些识别属性:

<div class="rtsLevel rtsLevel1">
  <ul class="rtsUL">
    <li class="rtsLI rtsFirst rtsLast">
      <a class="rtsLink rtsSelected" href="#">
        <span class="rtsOut">
          <span class="rtsIn">
            <span class="rtsTxt">Dashboard</span>
          </span>
        </span>
      </a>
    </li>
  </ul>
</div>

使用此javascript:

function OnClientDragging(sender, eventArgs) {
    var target = eventArgs.get_htmlElement();
    console.log(target);
    var currentZone = TryGetZoneFromTarget(target);
}

function TryGetZoneFromTarget(target) {
//If the mouse moves too quickly target.id returns a red herring.
if (/\S/.test(target.id) == false) {
    if (target.indexOf("rtsLevel") != -1) {
        return null; //The tabstrip has an invisible div which doesn't have an ID, but isn't a redherring.
    }

    return undefined;
}

div没有指定id,但我似乎也无法与它“说话”。我试过'.hasClass(“rtsLevel”)'并被告知hasClass没有定义,所以我尝试进行字符串比较,但是碰到了同一堵墙。

我做错了什么?

编辑:解决方案是if ( $(target).hasClass('rtsLevel') ) {

1 个答案:

答案 0 :(得分:4)

如果target是有效的DOM元素,那么您应该能够:

target.className.indexOf("rtsLevel") != -1

或者如果你使用的是jQuery而target是一个DOM元素,你可以这样做:

$(target).hasClass("rtsLevel")

如果target.className未定义,则target不是DOM元素,这将是您的问题。