0

個別に名前を付けるのではなく、ID 名などに基づいて要素を対象とする CSS コードがいくつかあります。

.tzOptions li .subheader {

.myClassName

最初のバージョンで jquery の addClass を使用するにはどうすればよいですか? 私は名前付きバージョンで知っています、私はただできる

$listItems.addClass('myClassName');

名前付きクラスだけでなく、別の名前付きクラスを持つ dom 要素を含む名前付きクラスを含む「階層型」バージョンを処理するにはどうすればよいですか? 適用されるスタイルを.tzOptions li .subheader別の dom 要素に適用する必要がありますが、名前付きクラスを適用できるようにするためだけにスタイル コードを複製する必要はありません。

明確化

私は本当にこれをうまく説明できないようです。これが私が持っているものです。私はhtmlの塊を持っています:

<div id="options-reg-phone-type" class="tzOptions">
            <div class="scrollBlock">
                <ul id="dropdown-reg-phone-type">
                    <li>
                        <div class="header">Home</div>
                        <div class="subheader">info</div>
                        <div class="optkey">0</div>
                    </li>
                    <li>
                        <div class="header">Work</div>
                        <div class="subheader">info</div>
                        <div class="optkey">1</div>
                    </li>
                    <li>
                        <div class="header">Cell</div>
                        <div class="subheader">info</div>
                        <div class="optkey">2</div>
                    </li>
                </ul>
            </div>
        </div>
    </div>

クラスのdiv要素に適用される一連のスタイルがあります。header

.tzOptions li .header:hover { 
   color:#FFF; 
   font-size:14px; 
   font-weight:bold;
   line-height: 13px;
   padding-bottom:0;
}

私がやりたいのは、同じスタイルをクラスのdiv要素に適用することです。subheaderスタイルコードを複製する必要はありません。主な問題は、キーボード入力でマウスオーバー コードを複製しようとしていることです (つまり、選択で矢印キーを使用します)。私はそれを行う方法を知っています。:hoverある要素から別の要素にスタイルを適用する方法(または疑似セレクター:hoverで addClass を使用する方法がまったくわかりません。)

4

3 に答える 3

1

あなたの質問を理解できれば、セレクター「.tzOptions li .subheader」を持つ要素にクラスを追加できるようにしたいと考えています。

なぜ使用しないの$(".tzOptions li .subheader").addClass("myClassName");ですか?

于 2013-01-03T15:17:43.673 に答える
0

あなたはそれをすることはできません。ただし、特定の要素に定義されているすべての css を取得する関数を作成できます (仲間にするのはあまり良い考えではありませんが、これを試すことができます)。そのスタイルを要素に適用します。

これを試してみてください

//Function to get all the css for a particular dom element

jQuery.fn.css2 = jQuery.fn.css;
jQuery.fn.css = function() {
    if (arguments.length) return jQuery.fn.css2.apply(this, arguments);
    var attr = ['font-family','font-size','font-weight','font-style','color',
        'text-transform','text-decoration','letter-spacing','word-spacing',
        'line-height','text-align','vertical-align','direction','background-color',
        'background-image','background-repeat','background-position',
        'background-attachment','opacity','width','height','top','right','bottom',
        'left','margin-top','margin-right','margin-bottom','margin-left',
        'padding-top','padding-right','padding-bottom','padding-left',
        'border-top-width','border-right-width','border-bottom-width',
        'border-left-width','border-top-color','border-right-color',
        'border-bottom-color','border-left-color','border-top-style',
        'border-right-style','border-bottom-style','border-left-style','position',
        'display','visibility','z-index','overflow-x','overflow-y','white-space',
        'clip','float','clear','cursor','list-style-image','list-style-position',
        'list-style-type','marker-offset'];
    var len = attr.length, obj = {};
    for (var i = 0; i < len; i++) 
        obj[attr[i]] = jQuery.fn.css2.call(this, attr[i]);
    return obj;
}
于 2013-01-03T15:50:32.037 に答える
0

addClass階層宣言を操作するためのものではありません(可能ですが)

classdom 要素にもう一つ追加するためのものです。(追記)

したがって、別の/より多くのスタイルの動作を持つことができます

Jクエリ:

要素に既に割り当てられている可能性のあるクラスにクラスを追加するだけです。

于 2013-01-03T15:17:30.787 に答える