0
<div class="pm-dialog">
   <div class="pm-dialog-close">
      <div class="colors-main-content"><span>&times;</span></div>
   </div>
   <div class="pm-dialog-inner colors-main-content" style="margin: 12px 15px 0px 15px;">
      <div>
         <div class="pm-dialog-content">
            <div id="selectLocationProfilePopup">
            </div>
         </div>
         <div class="pm-dialog-footer">
            <div>
               <div class="pm-dialog-footer-background"></div>
               <div class="pm-dialog-buttonpane"></div>
            </div>
         </div>
      </div>
   </div>
</div>       

display:table-row を持つ pm-dialog-inner として定義されたクラスがあります。
1行でそれを行うことができます:$(".pm-dialog-inner > div").css("display", "block")しかし、それは私が望むものではありません.
上記のセレクターの ID に基づいて div のスタイルを設定したい (スタイルをインラインでオーバーライドする必要があるため)、以下の 1 つのステートメントを使用します。

Jquery を使用した JavaScript の私のコードは、以下のステートメントです。

$('#selectLocationProfilePopup').parent().parent().parent().find(".pm-dialog-inner > div").css("display", "block");   

私が間違っていることを教えてください。上記のコード行をリファクタリングできますか?
前もって感謝します。

4

3 に答える 3

1

あなたはこれを行うことができます

<div class="pm-dialog" />
   <div class="pm-dialog-close">
      <div class="colors-main-content"><span>&times;</span></div>
   </div>
<div class="pm-dialog-inner colors-main-content" style="margin: 12px 15px 0px 15px;">
<div class="pm-dialog-inner colors-main-content pre_content">
  ';        
   <div>
     -> I want to set this style div                 
     <div class="pm-dialog-content ">
        <div id="selectLocationProfilePopup"> content text goes here </div>
     </div>
  </div>
     <div class="pm-dialog-footer">
     <div class="pre_content">
        <div class="pm-dialog-footer-background"></div>
        <div class="pm-dialog-buttonpane"> -> I want to set this div style.
        </div>
     </div>
  </div>
  </div>
</div>​​​

前の div.. にクラスを追加し、クラスに「フッター」を含むものを除いて、その下のすべての div を選択します。

    $('div.pre_content div').not('div[class*=footer]').css('background-color','red');​​​​​​​​​​​​​​​​​​

次に、それらを正しくフィルタリングしたら、css を何にでも設定します。

http://jsfiddle.net/aZpGU/

于 2012-06-29T00:44:25.900 に答える
1

あなたの HTML を確認しましたが、非常に混乱していました。正しいか確認してください。

<div class="pm-dialog">          
    <div class="pm-dialog-close">        
        <div class="colors-main-content"><span>&times;</span></div>         
    </div>           
    <div class="pm-dialog-inner colors-main-content" style="margin: 12px 15px 0px 15px;">        
        <div>
            <div class="pm-dialog-content">
                <div id="selectLocationProfilePopup">
                    <div></div>
                </div>              
                <div class="pm-dialog-footer">
                    <div>                             
                        <div class="pm-dialog-footer-background"></div>                    
                        <div class="pm-dialog-buttonpane"></div>                     
                    </div>                   
                </div>                
            </div>              
        </div>
    </div>   
</div>

この構造を使用して、以下のコードを使用しましたが、問題なく動作します。この結果が必要かどうかをテストして教えてください。

$("#selectLocationProfilePopup").parents(":eq(1)").css("display", "block"); 

$("#selectLocationProfilePopup").parent().find(".pm-dialog-footer").children("div").css("display", "block");
于 2012-06-29T00:23:18.467 に答える
1

試す:

$('#selectLocationProfilePopup').closest(".pm-dialog-inner").find("div:eq(0)").css("display", "block");  
于 2012-06-29T00:18:06.503 に答える