2011-09-02 24 views
1

我試圖從該元素派生的一些標識屬性:使用此javascriptHtmlDivElement沒有法 '的indexOf'

<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> 

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

你想要看div上的什麼屬性?班級名稱? ID?文字內容?你必須解決對象的適當屬性,而不僅僅是對象本身。 – jfriend00

+1

嘗試'如果($(目標).hasClass('rtsLevel')){...' –

+0

愚蠢的問題,但 - 你確信jQuery實際上正在加載?我問,因爲'hasClass'是一個jQuery方法。 –

回答

4

如果target是一個有效的DOM元素,那麼你應該能夠做到:

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

,或者如果你正在使用jQuery和目標是DOM元素,你可以這樣做:

$(target).hasClass("rtsLevel") 

如果target.className是不確定的,那麼目標不是一個DOM元素,這將是你的問題。

相關問題