正如两位评论者指出的那样,您应该拥有唯一的 ID。
我这里有一个关于如何获取 id 的jsFiddle 。
我向可点击元素添加了类,并在其上绑定了点击事件。假设 h3 与“内部”div 处于同一级别,则使用 .prev 函数查找 h3 并获取其 id。
总而言之,最佳实践是真正更好地分组您的内部元素并使用唯一的 id。多个元素可以有相同的类,但不能有 id。
稍微修改的HTML:
<div id="outer">
<h3 id="groupa">group a</h3>
<div id="inner1" class="clickable">Click here</div>
<div id="inner2" class="clickable">Click here</div>
<h3 id="groupb">group b</h3>
<div id="inner3" class="clickable">Click here</div>
<div id="inner4" class="clickable">Click here</div>
</div>
<br/><br/>
Your Results:
<br/><br/>
<div class="output1"></div><!--This inner's closest h3-->
<div class="output2"></div> <!--This inner ID-->
Javascript:
$('.clickable').click(function(){
//.attr fetches the attribute value
$('.output1').text($(this).attr('id'));
$('.output2').text($(this).prev('h3').attr('id'));
/*
$(this).attr('id') -- this contains the clicked element id
$(this).prev('h3').attr('id') -- this contains the closest h3's id
you could store them in a variable and then call your function with it.
*/
});