2017-05-26 7 views
1

HTML働いていない親はjQueryの

comentarioId = $(this).parents().parent('#comentario-botones').attr("data-id"); 
alert(comentarioId); // return 1 
+10

'document '内の要素の' id'は一意である必要があります – guest271314

答えて

0

すでに.parents()を使用するときは、

parents()はあなたにuは、単純なパスのID、クラスまたはAttrのできるすべての親要素、

を与える、 parent()を必要としません

また、IDは一意である必要があります。

IDを一意にしたくない場合でも、IDセレクタを使用したい場合は、そのための簡単な解決策があります。

あなたのIDセレクタは、この$('[id="your-ID"]')

$('[id="comentario-boton"]').click(function(){ 
 
    comentarioId = $(this).parents('#comentario-botones').attr("data-id"); 
 
    alert(comentarioId); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="comentario-info"> 
 
<b>AngelRmz</b> hace 8 minutos 
 
<div id="comentario-botones" data-id="1"> 
 
    <div id="comentario-boton" class="comentario-informar" title="Informar">Informar</div> 
 
    <div id="comentario-boton" class="comentario-eliminar" title="Eliminar">Eliminar</div> 
 
    <div id="comentario-boton" class="comentario-editar" title="Editar">Editar</div> 
 
    <div id="comentario-boton" class="comentario-guardar" title="Guardar">Guardar</div> 
 
</div>

ノートのようにする必要があります。これは良い方法ではありませんが、これは理由のために同じIDを使用したい開発者のための簡単なハックです。

+1

うわー! :そのコードは美しいよ!あなたは私のすべての問題を解決しました –

3

をIDは一意でなければなりません。 data-idを使用します。したがって、値dataを取得してください。

$("#comentario-botones").on("click", "div", function() { 
 
    var comentarioId = $(this).parent().data('id');; 
 
    alert(comentarioId); // return 1 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="comentario-info"> 
 
    <b>AngelRmz</b> hace 8 minutos 
 
    <div id="comentario-botones" data-id="1"> 
 
    <div id="comentario-boton1" class="comentario-informar" title="Informar">1</div> 
 
    <div id="comentario-boton2" class="comentario-eliminar" title="Eliminar">2</div> 
 
    <div id="comentario-boton3" class="comentario-editar" title="Editar">3</div> 
 
    <div id="comentario-boton4" class="comentario-guardar" title="Guardar">4</div> 
 
    </div>

+1

もっと効率的です*** $( "#comentario-botones")。on( "click"、 "div"、function()* ** ...そのようにすると、すべての子divに追加するのではなく、単一のイベントハンドラを添付するだけです。 – Esko

+0

Shreeありがとうございました<3: ') –

+0

問題が解決したらans :)。 –