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>       

我有一个定义为 pm-dialog-inner 的类,它有一个 display:table-row。
我可以用一行来做到这一点:$(".pm-dialog-inner > div").css("display", "block")但这不是我想要的。
我想根据它在选择器中的 ID 设置 div 的样式,(因为我需要覆盖样式内联)上面提到的一个语句如下:

我在 javascript 中使用 Jquery 的代码是以下语句:

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

你能告诉我我做错了什么吗?你能重构上面的代码行吗?
提前致谢。

4

3 回答 3

1

尝试:

$('#selectLocationProfilePopup').closest(".pm-dialog-inner").find("div:eq(0)").css("display", "block");  
于 2012-06-29T00:18:06.503 回答
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

你可以这样做

<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.. 然后选择除该类中包含“footer”的那些之外的所有 div。

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

然后,一旦您正确过滤了它们,请将您的 css 设置为任何值。

http://jsfiddle.net/aZpGU/

于 2012-06-29T00:44:25.900 回答