0

如果他的祖父母没有属性,则使用jQuery我想添加class到元素selectstyle="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 回答