найти идентификатор div по клику - PullRequest
1 голос
/ 18 ноября 2011

Предположим, у меня есть следующая структура:

<div id="divid1">
  <div id="divid2">
    <div id="divid3">
    </div>
    <div id="divid4">
    </div>
  </div>
  <div id="divid5">
   </div>
</div>

Приведенный выше код является просто примером для объяснения проблемы, поэтому не обращайте на нее большого внимания.

Теперь давайте предположим, что у меня есть следующий jQuery:

$("#divid1").click(function(){});

Теперь .. Я хочу сделать следующее:

  • Когда это событие инициируется (то есть пользователь щелкает в любом месте внутри div с идентификатором divid1), чтобы сообщить мне идентификатор div, в котором они находятся в данный момент. Когда я говорю идентификатор, в котором они находятся, я имею в виду идентификатор div они действительно щелкнули, даже если он внутри divid1. Давайте предположим, что они на самом деле нажали внутри divid4. Это событие вызвано тем, что divid4 находится внутри divid2, которая находится внутри divid1

Ограничения:

  • Я не знаю НИКАКИХ идентификаторов, кроме divid1. Это потому, что я генерирую идентификаторы всех других div'ов динамически, и нет никакого способа узнать, сколько там div'ов ИЛИ как они называются.

Ответы [ 4 ]

5 голосов
/ 18 ноября 2011

Попробуйте это:

$("#divid1 div").click(function(){
  alert($(this).attr("id"));
  return false; // avoid parents divs if you have nested divs
});

jsFiddle здесь

2 голосов
/ 18 ноября 2011
$("#divid1 div").click(function(){ console.log(this.id);});

См. Полный источник успешного теста:

<!doctype html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("#divid1 div").click(function(){ console.log(this.id);});
});
</script>
<style type="text/css" rel="stylesheet">
    div { display:block;height:20px;background:#000;}
</style>
</head>
<body>
<div id="divid1">
  <div id="divid2">
    <div id="divid3">
    </div>
    <div id="divid4">
    </div>
  </div>
  <div id="divid5">
   </div>
</div>

</body>
</html>
0 голосов
/ 18 ноября 2011
<script type="text/javascript">
    function GetId(obj)
    {
        return document.getElementById(obj.id).id;
    }
</script>

<div id="divid1" onclick='GetId(this);'>
    <div id="divid2" onclick='GetId(this);'>
        <div id="divid3" onclick='GetId(this);'>
    </div>
    <div id="divid4" onclick='GetId(this);'>
    </div>
</div>
<div id="divid5" onclick='GetId(this);'>
</div>
0 голосов
/ 18 ноября 2011
$("#divid1").find().bind('click', function(){
    $(this).attr("id");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...