1

我有以下结构:

<div class="main">
   <div class="submain">
      .....
      <div class="sub..submain">
      </div>
      .....
   </div>
   <div class="submain">
   </div>
</div>

有些子元素有css属性float:right;,不知道有多少层。如何使用选择器选择具有此 css 属性的所有元素$('.main')?我有一个想法,但我正在尝试找到一种更简单的方法来做到这一点:

var elemsArray=[];
   function findNeededChildren(elem){
      var hasChildren = elem.children().length>0?true:false;
      if(hasChildren ){
            $.each(elem.children(),function(){
            if($(this).css('float')=='right')elemsArray.push($(this));
            findNeededChildren($(this));
      });
   }
}
findNeededChildren($('.main'));
4

2 回答 2

1

您可以按属性选择元素,因此您可以尝试

$('div[style="float:right"]')

这应该选择具有该属性的所有 div。但我不确定它是否还会选择不止一种风格的东西。


编辑:

我只记得我在这里工作的一些人使用类来做这类事情。它使可维护性更容易。制定一个 CSS 规则,上面写着:

.floatRight { float:right }

然后只需将此类分配给需要浮动的所有内容。这些应该更容易选择。

于 2013-09-27T10:07:31.987 回答
0

你可以做类似的事情

$(document).ready(function(){
   $(".main").find("div").each(function(){
     if($(this).css("float") == "right") {
      // This is the required div
     }
   });
})

如果您不知道.main的子项是 div 或其他标签,请使用

$(document).ready(function(){
   $(".main").children().each(function(){
     if($(this).css("float") == "right") {
      // This is the required element with float: right property
     }
   });
})
于 2013-09-27T10:09:36.610 回答