0

次のHTMLコードでdivタグにアクセスしたい:

<table>
    <div class="rowBound">
      <tr onclick="expandLastResultDetails(this);">
        <td class="c1">56835-14513</td>
        ...
      </tr>
      <tr class="rowDetails">
        <td colspan="0">
        <div style="background-color: #0F9;"> expandable
         </div></td>
      </tr>
    </div>
</table>

しかし、jQueryコマンドは、DIVの代わりにTBODYを提供します。

これは私が別のケースでやっていたことです:

function expandNavContent(navEntryTitle) {
    var content = $(navEntryTitle).parent().children('.navContent');
    $(content).slideToggle('slow', function () {
        // Animation complete.
    });
}

私が欲しいもの:誰かがtrをクリックした場合、rowDetailsはslideToggleでアニメーション化する必要があります

このコードを使用する場合:

function expandLastResultDetails(tableEntry) {
    var content =$(tableEntry).parent().children('.rowDetails');
    $(content).slideToggle('slow', function () {
        // Animation complete.
    });
}

すべての行を切り替えますが、1つの行を切り替える必要があるため、それらを分割にネストしました。おそらくそれは間違っていました。

4

4 に答える 4

2

これを試して:

$('tr.rowDetails').find('div');

ただし、マークアップは無効です。trの要素でありtable、の要素ではありませんdiv

外側の親を取得するにはdiv

$('tr.rowDetails').closest('div');

編集後

function expandLastResultDetails(tableEntry) {
    var content =$(tableEntry).next('.rowDetails'); // will point to next tr
    $(content).slideToggle('slow', function () {
        // Animation complete.
    });
}
于 2012-09-06T09:41:59.377 に答える
2

試す$('.rowDetails').closest('div.rowBound');

div要素が見つかるまで、現在の要素から(外側に)バブルします。

それが役に立てば幸い

于 2012-09-06T09:44:00.437 に答える
1

どのコマンドを試しましたか?あなたはこれを使うことができたでしょう:

$(".rowDetails tr td div");

さらに、 !の<tr>中にあることはできません。<div>

于 2012-09-06T09:40:59.683 に答える
0

マークアップが無効であるため、ブラウザは適切にtbodyとテーブルを挿入します(FireBug / Devツールでマークアップを確認してください)。(一部のブラウザでは)次のようなもの$(".rowDetails").parent().parent().parent()が機能する可能性がありますが、代わりにマークアップを修正することをお勧めします

于 2012-09-06T09:43:20.940 に答える