2012-05-02 8 views
-1

良い日。div内のリストアイテムにスタイルを適用する

javacriptでdivにネストされたリストアイテム にスタイルを適用できるかどうかを知りたいと思います。私のページにはすでにリスト項目があるdivがたくさんありますが、その特定のlistitemにスタイルを適用したいだけです。

javascripを使用してlistitemにスタイルを適用する唯一の理由は、IE 7の表示に関する問題がdivの内部でCSSスタイルを受け入れたくないからです。

私のHTMLは次のようになります。その何かIEは常に例えば、支援してきましたので、あなたがそれすぎIE7で動作する必要がありますすることができ勿論

<ol>  
    <li> 
     GENERAL PRINCIPLES UNDERLYING THE REPRESENTIVE COUNCIL OF LEARNERS 
     <div id = "divv"> 
     <ol> 
      <li>....</li> 
      <li>....</li> 
      <li>....</li> 
      <li>....</li> 
      <li>....</li> 
     </ol> 
     </div> 
    </li> 
<ol> 

はあなたに

+1

内側のリストのCSSスタイルを実証しているJSFiddleを作成しましたdivv ol li "をCSSセレクタとして使用しますか? – Adrian

+0

idでdiv要素を取得し、DOMトラバーサルを実行します.GoogleでDOMトラバーサルをjavascriptで検索すると、良い記事がたくさん見つかります – Kamal

答えて

0

ありがとうございました。

#divv ol li{your style properties here} 

は、すべてのブラウザで動作するはずです。これがうまくいかないシナリオは、あなたのCSSのどこか他の場所で「重要な」スタイリングをキャンセルした場合だけです。

0

はい、これはgetElementByIdとgetElementsByTagNameを組み合わせて使用​​し、見つかったアイテムにループを実行し、javascriptを使用してCSSスタイルを追加することができます。 ここでは、同じもののためのjsfiddle:http://jsfiddle.net/saganbyte/m65CF/1/

0

あなたがする必要があるのは、IDでdivを取得し、そこからあなたが望むリストに到達するまでDOMを横断することです。次に、リストスタイルオブジェクトを使用して、必要なスタイルを挿入します。

はまた、私はあなたがCSSからそれを行うことができない場合は、同様の構造CSSは常に(もちろんサポートされていない場合を除く)。ここ

はテストと少しフィドルで適用することができ、それにより多くの問題があると思われますあなたが提供したマークアップ、それはdivをつかんで、その中のOLを見つけて、それにボーダーを追加します。

http://jsfiddle.net/Dj5gH/1/

var div = document.getElementById('divv'), 
    found = false, 
    elem = div.firstChild; 

while (!found) { 

    if (elem.nodeType == 1) { 
     elem.style.border = '2px solid red'; 
     found = true; 
    } 
    else elem = elem.nextSibling; 
};​ 
関連する問題