1

私は次の構造を持っています:

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

一部のサブ要素には css プロパティfloat:right;があり、レベルがいくつあるかわかりません。selector を使用して、この 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 が選択されます。しかし、この 1 つ以上のスタイルを持つものも選択するかどうかはわかりません。


編集:

私が働いているここにいる何人かの人々が、この種のことのためにクラスを使用していることを思い出しました。保守性が容易になります。次のような 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 に答える