2

由于我使用的 Javascript 库的限制,我无法将 id 分配给<div>. 不幸的是,我不知道如何将一个 Javascript 工具提示库 Tipped 中的 Tooltip 对象附加到没有 ID 的元素上。我不知道这是否可能,但我正在尝试通过其他方式找到该对象,这有望让我修改 id。

我正在寻找的元素是工具栏上的按钮,但它不是 HTML 按钮。它<div>具有 CSS 样式和分配的 Javascript 事件,使其看起来和感觉像一个按钮。我知道 parent 的类名,我知道 grandparent 的 id <div>,但这就是我所知道的。部分问题在于,一旦获得对 HTML 对象的引用,似乎没有很好的参考来说明如何迭代地操作 HTML 对象。我见过很多这样的例子:

var x = document.getElementsById("asdf")

但没有后续代码显示如何实际做任何事情。x里面有什么?它有哪些方法?我知道innerHTML 和innerTEXT,但我不知道它们是否适用于x、x 的孩子或???。Chrome 控制台有所帮助,但我基本上迷路了。

这是我的按钮的相关代码:

我页面中的 DIV(导出按钮上没有 id)

如您所见,Export 按钮上没有 id,但 parent 有一个类名,grandparent 有一个 id。另一个障碍是祖父母的身份不是静态的。它总是以“dhxtoolbar”开头,页面上只有一个工具栏,但我无法通过正则表达式搜索找到该工具栏。

最终,我希望能够将提示工具提示附加到“导出”按钮。我认为 Tipped 需要一个 id,但也许它不需要。无论如何,我想了解更多关于如何遍历 DOM 的信息,并且作为奖励,弄清楚我如何或是否可以更改活动页面上元素的 id。谢谢。

4

2 回答 2

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');

Tipped 会自动选择标题并使用它。

于 2012-12-22T20:17:33.820 回答
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);
    }
}
于 2012-12-23T16:24:49.747 回答