1

次のテーブルからIDまたはクラスを取得する必要があります。たとえば、青い四角のdivをクリックすると、赤い四角のテーブルからIDまたはクラスを取得します。

これを使用する場合:

$('div').click(function() {
    console.log($(this).next().find('table').attr('id));
});

しかし、動作しません! ここに画像の説明を入力してください

HTMLコード

<div id="statusServ">
    Status ::
    <div id="todosTicket" class="colorstatus">Todos</div>
    <div id="pendiente" class="colorpendiente colorstatus">Pendiente</div>
    <div id="atencion" class="coloratencion  colorstatus">En Atención</div>
    <div id="concluido" class="colorconcluido colorstatus">Concluido</div>
    <div id="cerrado" class="colorcerrado colorstatus">Cerrado</div> | Acciones ::
</div>
<i>Para visualizar los detalles del ticket, presione sobre la fila deseada.</i>
<table cellspacing="1" id="rBuscarServicio" class="tableResultsSearch tSeguimiento" name="rBuscarServicio">
    <thead>
        <tr>
            <th>#TKMA</th>
            <th>CLIENTE</th>
            <th>EMPRESA</th>
            <th>ING. ASIGNADO</th>
            <th>FECHA CREACIÓN</th>
            <th>OBSERVACIONES</th>
            <th style="display:none;">STATUS</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>
4

2 に答える 2

2

next()次の兄弟(この場合は次の青)にのみ移動し<div/>ます。

を含む<div/>兄弟であるツリーに上る必要があります。<div/><table/>

あなたの例では、以下が機能するはずです。

フィドル

$('#statusServ').children().click(function(){
    console.log(
        $(this)             // div that was clicked
            .parent().parent()       // #statusServ
            .find('table')         // #rBuscarServicio_wrapper
            .prop('id')     // 'rBuscarServicio'
    );
});

ノート:

一般に、attr()の代わりにprop()を使用するのが最善です

prop()vsattr()

于 2013-03-15T02:57:37.310 に答える
1
$('div.colorstatus').click(function() {
  console.log($(this).closest('div.buscar').find('table').attr('id'));
});

編集(投稿の下部にあるHTMLの代替):

$('div.colorstatus').click(function() {
  console.log($(this).parent('div').siblings('table').attr('id'));
});
于 2013-03-15T03:09:46.620 に答える