2

使用しているJavascriptライブラリの制限により、にIDを割り当てることはできません<div>。残念ながら、JavascriptツールチップライブラリであるTippedのTooltipオブジェクトをIDなしの要素にアタッチする方法がわかりません。これが可能かどうかはわかりませんが、IDを変更できるようにする他の方法でオブジェクトを見つけようとしています。

私が探している要素はツールバーのボタンですが、HTMLボタンではありません。これ<div>は、ボタンのように見えるようにするために割り当てられたCSSスタイルとJavascriptイベントを持っています。私は親のクラス名と祖父母のIDを知ってい<div>ますが、それは私が知っている限りです。問題の一部は、HTMLオブジェクトへの参照を取得した後、HTMLオブジェクトを繰り返し操作する方法についての適切な参照がないように思われることです。私はこのような例をたくさん見ました:

var x = document.getElementsById("asdf")

しかし、実際に何かを行う方法を示すフォローアップコードはありません。xには何がありますか?どのような方法がありますか?私はinnerHTMLとinnerTEXTを知っていますが、それらがx、xの子、または???に適用されるかどうかわかりません。Chromeコンソールは少し役に立ちましたが、基本的には迷っています。

これは私のボタンに関連するコードです:

私のページのDIV([エクスポート]ボタンにIDがありません)

ご覧のとおり、[エクスポート]ボタンにはIDはありませんが、親にはクラス名があり、祖父母にはIDがあります。もう1つの問題は、祖父母のIDが静的ではないことです。常に「dhxtoolbar」で始まり、ページにはツールバーが1つしかありませんが、正規表現検索でツールバーを検索することができませんでした。

最終的には、[エクスポート]ボタンにヒント付きのツールチップを添付できるようにしたいと思います。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 に答える