2011-08-07 4 views
6

すべての.note要素に特定のツールチップがあるようにしたいと思います。タイトル属性をクラス名で定義することはできますか?

これを自動的に行うことは可能ですか? CSSで? noteクラスに色とフォントが定義されているように、ツールチップテキスト(title属性)をそのクラスにバインドすることは可能ですか?

.note要素すべてを繰り返し処理し、まだ存在しない場合はtitle属性を追加することができます。しかし、私はCSSスタイルを手動で繰り返す必要がないので、この問題に対するより洗練された解決法があるかどうかは疑問でした(CSSで定義できるなど)。

+1

CSSはプレゼンテーションやスタイルに関係しています。タイトル属性はデータであり、プレゼンテーションではありません。 – cdhowie

+0

@cdhowie:実際には、タイトルは実際にはプレゼンテーション用のものでデータではありません。 –

答えて

9

これは、CSSの範囲内にあるものではありません。 JavaScriptやJQueryを使うのが最善の方法です。

11

CSSを使用して要素の属性を変更することはできません。あなたは、おそらく、(のみ不器用ながらも)しかし、title機能をエミュレートできます。

.note { 
    position: relative; 
} 

.note:after { 
    content: "The alternate 'pseudo-title' text for the .note elements."; 
    position: absolute; 
    left: 50%; 
    background-color: #000; 
    color: #fff; 
    } 

JS Fiddle demoを。

これを使用すると元のtitleが表示されるので、JavaScript(またはサーバー側言語)でその属性を削除することをおすすめします。

可能なJavaScriptのタイトル除去方法:

var notes = document.getElementsByClassName('note'); 
var notesNum = notes.length; 

for (i=0; i<notesNum; i++){ 
    notes[i].removeAttribute('title'); 
} 

JS Fiddle demo (combining the two approaches)


はコメント(下記)クラス名を持つすべての要素の新しいタイトルを割り当てるには、JavaScriptのオプションを追加するために、既存の外観を変更し、感じるしたくないから、OPとして、を編集します note

var notes = document.getElementsByClassName('note'); 
var notesNum = notes.length; 
var newTextForNotesClass = "This is the new title text for the notes-class-name group."; 

for (i=0; i<notesNum; i++){ 
    notes[i].title = newTextForNotesClass; 
} 

JS Fiddle demoです。

+0

申し訳ありませんが、私は通常のツールチップを好む。むしろ、ルック・アンド・フィールを変えないでください。 – pimvdb

+0

それについて謝罪する必要はありません!:)あなたのニーズを満たす(必要な)JavaScriptソリューションを示す最新の編集をご覧ください。 :) –

+2

これは受け入れられた答えでなければなりません。 –

2

CSSはスタイリングのためのものではありません。あなたはそのようなことのためにJavaScriptが必要です。 document.getElementsByClassNameを使用して、これらのタイトル属性を設定するループを行うことができる配列を取得できます。

+0

現在、私はこれをやっているのですが、私はちょうどツールチップのテキストを定義することが可能かどうか疑問に思っていましたフォント/色/ etcと同じ方法です。私はちょうどこの方法を続けます。 – pimvdb

4

CSS 'では、クラスを使用してタイトルを割り当てる方法についての回答が必要と思われます。他の答えと同様に、jQueryやjavascriptが最善の策です。 jQueryを使って

、あなたが行うことができます:ここでは

tooltip = "Tooltip Text"; 
$('.note').attr('title', tooltip); 

は一例とフィドルです:http://jsfiddle.net/RdNvy/

+0

jQueryですばらしい答え。私は必要な裸の骨が何であるかを見るためにあなたのjsfiddleを単純化したかったのです。 htmlタグでtitle = ""がなくても結果は素晴らしいですが、jqueryでもそれがうまく処理されます。 http://jsfiddle.net/RdNvy/42/ありがとうございました! – Mohsin

関連する問題