2012-12-22 72 views
2

由於我使用的Javascript庫的限制,我無法爲<div>分配一個編號。不幸的是,我不知道如何將一個Tooltip對象從Tipped(一個Javascript工具提示庫)附加到沒有id的元素上。我不知道這是否可行,但我試圖通過其他方式找到對象,希望能讓我修改id。javascript找不到編號的節點

我正在查找的元素是工具欄上的按鈕,但它不是HTML按鈕。這是一個<div>,其CSS樣式和Javascript事件分配使它看起來像一個按鈕。我知道父母的班級名稱,我知道祖父母<div>的身份證,但這和我所知的一樣。部分問題是,一旦你獲得對HTML對象的引用,對於如何迭代操作HTML對象似乎沒有很好的參考。我見過很多這樣的例子:

var x = document.getElementsById("asdf") 

但沒有後續代碼顯示如何實際做任何事情。 x中有什麼?它有什麼方法?我知道innerHTML和innerTEXT,但是我不知道它們是否適用於x,x的孩子,或者???。 Chrome控制檯已經提供了一些幫助,但我基本上已經丟失了。

這是我的按鈕相關的代碼:

DIVs in my page (no id on the Export button)

正如你所看到的,有導出按鈕沒有ID,但父母有一個類名和祖父母有一個id。另一個障礙是祖父母的身份不是固定的。它始終以「dhxtoolbar」開頭,並且頁面上只有一個工具欄,但我無法通過正則表達式搜索找到工具欄。

最終,我希望能夠將「尖頭」工具提示附加到「導出」按鈕。我認爲Tipped需要一個ID,但也許它沒有。無論如何,我想了解更多關於如何遍歷DOM的信息,並且還要了解如何或是否可以在活動頁面上更改元素的ID。謝謝。

+0

你已經研究['querySelectorAll()'](https://developer.mozilla.org/en-US/docs/DOM/Document .querySelectorAll)? – Pointy

+0

我從來沒有聽說過這一點,但這正是我所說的:您鏈接的頁面顯示瞭如何使用單一API方法和API頁面上的後續代碼,並未說明接下來要做什麼。 函數句柄(evt){var x = evt.target.querySelector(「span」); ... //用x } 什麼是「用x做某事」? – Anthony

+0

那麼它是什麼讓你想找到元素?換句話說,如果你的問題已經解決了如何找到元素,接下來你會做什麼? – Pointy

回答

0

這是我試圖對此解釋:

var Obj   = document.getElementsByClassName("classname"); 
var ObjChildren = Obj[0].getElementsByTagName("tag") 
var searchText = "string"; 

for (var i = 0; i < ObjChildren.length; i < i++) { 
    if (ObjChildren[i].innerHTML == searchText) { 
     console.log(ObjChildren[i].innerHTML); 
    } 
} 
2

Tipped實際上接受任何CSS選擇器作爲參數。如果類是獨一無二的,你可以針對這樣的說法:

Tipped.create('.dhx_toolbar_btn', 'some tooltip text'); 

或者該類不是唯一的,你可以嘗試通過樹狀結構瞄準它。由例如:

Tipped.create('.header .sidebar .dhx_toolbar_btn', 'some tooltip text'); 

我在你的HTML,該按鈕具有空title屬性(或者你的檢查只是增加了他們)發現​​。如果您可以爲按鈕設置title屬性,Tipped會自動提取它。例如:

<div class="dhx_toolbar_btn" title="test title"> 

你會那麼只需要使用:

Tipped.create('.dhx_toolbar_btn'); 

和帶尖會自動拾取稱號,並使用它。

+0

感謝您的信息。我不知道Tipped可以使用CSS選擇器。不幸的是,按鈕類不是唯一的。工具欄上還有其他按鈕與同一班級相同,但如果重要的話,它們都有不同的文字。 – Anthony

+0

爲了迴應您更新的答案,我認爲這個標題方面可能會很有趣。我必須對Tipped做一些研究,因爲我真的需要Tooltip來使用AJAX將內容動態加載到工具提示中。不過,我不確定我是否可以使用所描述的標題方法來完成該操作,所以我會檢查一下。謝謝。 – Anthony