父母不在jQuery工作

时间:2017-05-26 05:13:14

标签: javascript jquery

HTML:

<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"></div>
    <div id="comentario-boton"  class="comentario-eliminar" title="Eliminar"></div>
    <div id="comentario-boton"  class="comentario-editar" title="Editar"></div>
    <div id="comentario-boton"  class="comentario-guardar" title="Guardar"></div>
  </div>

JavaScript的:

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

2 个答案:

答案 0 :(得分: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 :(得分:0)

当您已使用parent()

时,您不需要.parents()

parents()将为您提供所有父母元素,您可以简单地传递其ID,Class或Attr,

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的开发人员来说,这是一个简单的黑客攻击。