由于我正在使用的Javascript库的限制,我无法为<div>
分配ID。不幸的是,我不知道如何将Tipped(一个Javascript工具提示库)中的Tooltip对象附加到没有id的元素。我不知道这是否可行,但我试图通过其他方式找到对象,希望能够修改id。
我正在寻找的元素是工具栏上的按钮,但它不是HTML按钮。它是一个<div>
,它具有CSS样式和Javascript事件,使其看起来像一个按钮。我知道父母的班级名字,我知道祖父母<div>
的身份证,但这就像我所知道的那样。问题的一部分是,一旦你获得对它们的引用,对于如何迭代地操作HTML对象似乎没有很好的参考。我见过很多像这样的例子:
var x = document.getElementsById("asdf")
但没有后续代码显示如何实际执行任何操作。什么在x?它有什么方法?我知道innerHTML和innerTEXT,但我无法弄清楚它们是否适用于x,x的子项或???。 Chrome控制台有一点帮助,但我基本上都输了。
这是我的按钮的相关代码:
如您所见,“导出”按钮上没有ID,但父级有一个类名,祖父母有一个id。另一个障碍是祖父母的身份不是静止的。它始终以“dhxtoolbar”开头,页面上只有一个工具栏,但我无法进行正则表达式搜索找到工具栏。
最终,我希望能够将Tipped工具提示附加到“导出”按钮。我认为Tipped需要一个id,但也许它不需要。无论如何,我想更多地了解如何遍历DOM,并作为奖励,弄清楚如何或如果我可以更改实时页面上元素的ID。感谢。
答案 0 :(得分: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将自动获取标题并使用它。
答案 1 :(得分: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);
}
}