1

以下将在文档准备好后打开第一个选项卡。我只是想保留此功能,但想添加一个约束:如果父 Li 类被隐藏,请不要这样做。如果这太复杂了,我也可以添加一个类<a/>并说如果它是这种类型,那么不要这样做。

<ul id="attached_deals_tab" class="nav nav-tabs">
   <input id="id_deals-0-id" type="hidden" name="deals-0-id">
   <li class="hidden">
       <a data-toggle="tab" href="#X">X</a>
    </li>
</ul>


$('#attached_deals_tab').find('a:first').tab('show');

这甚至可能吗?

4

3 回答 3

1

你可以试试这个...

$('#attached_deals_tab').find('li[class!=hidden] a:first').tab('show');
于 2012-09-20T09:04:12.450 回答
1

假设在a:first第一个li可见的内部,您可以这样做:

$('#attached_deals_tab li:first:visible a:first').tab('show');

如果您绝对想根据没有课程来做到这一点,hidden那么您可以这样做:

$('#attached_deals_tab li:not(.hidden) a:first').tab('show');

并且您可以组合:first,:not:visible

另一个技巧是通过从左到右尝试 jQuery 选择器的位,看看在 Firebug 中是否在 dom 中找到正确的元素,从而朝着选择器前进。

例如。只是$('#attached_deals_tab li:not(.hidden))在您的 Firebug 控制台中执行应该返回一个 dom 对象,您只需单击该对象即可转到在 HTML 视图中选择的那个元素。

于 2012-09-20T09:05:18.840 回答
0
var a = $('#attached_deals_tab').find('a:first');

if(!a.parent('li').hasClass('hidden')) {
    a.tab('show');
}
于 2012-09-20T09:05:12.890 回答