0

彼の祖父母が属性を持っていない場合に要素に追加しjQueryたいclassselectstyle="display:none"

html は次のようになります (ここでは追加しませんclass):

<div style"display:none">
  <div>
    <div>
      <select></select>
    </div>
  </div>
</div>

ここで要素に追加したいclassselect

<div>
  <div>
    <div>
      <select></select>
    </div>
  </div>
</div>

それを行う可能性はありますか?

4

4 に答える 4

3

これを試してください(祖父母用):

$('select').each(function(){
    var grandparent = $(this).parent().parent();
    if(grandparent.is(':visible')) { //grandparent is not hidden
       // do something
    }
    else {
       // do something else
    }
});

これを試してください(曽祖父母の場合):

$('select').each(function(){
    var g_grandparent = $(this).parent().parent().parent();
    if(g_grandparent.is(':visible')) { //great-grandparent is not hidden
       // do something
    }
    else {
       // do something else
    }
});
于 2013-07-03T18:01:23.943 に答える
2

またはこれ

$("select").filter(function(){
    return $(this).parent().parent().parent().is(":visible");
}).addClass("visible");

http://jsfiddle.net/2Qu7r/

于 2013-07-03T18:05:41.137 に答える
1

最初に不足している等号を追加します。

style="display:none"

その後、次のことができます:

$('select').addClass(function() {
    return $(this).parents().eq(2).is(':visible') ? 'myClass' : '';
});

フィドル

于 2013-07-03T18:12:25.757 に答える
0

これはどう?これにより、選択の曽祖父母が検索され、可視性がチェックされ、新しいクラスが選択に追加されます。

var element = $("select").parent().parent().parent();
if(element.is(":visible")) {
    element.find("select").addClass("new-added-class");
}

JSFIDDLEでチェックしてください

于 2013-07-03T18:21:01.010 に答える