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

もう 1 つのヒントは、jQuery セレクターのビットを左から右に試して、セレクターに向かって作業を進めることです。Firebug で、dom に正しい要素が見つかるかどうかを確認します。

例えば。Firebug コンソールで実行$('#attached_deals_tab li:not(.hidden))するだけで、クリックするだけで HTML ビューで選択された要素に移動できる dom オブジェクトが返されます。

于 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 に答える