非点击元素的$('.selector').nearest('div')

asd*_*hak -10 jquery

第一个案例:

<div>
  <a href="#" onclick="doIt(this)">some job</a>
<div>
Run Code Online (Sandbox Code Playgroud)

我可以:

<script>
  function doIt(caller){
       alert($(caller).closest('div').html());
  }
</script>
Run Code Online (Sandbox Code Playgroud)

第二种情况:

<div id="divId">
  ....
</div>
Run Code Online (Sandbox Code Playgroud)

我做

<script>
  alert($("#divId").html());
</script>
Run Code Online (Sandbox Code Playgroud)

我怎么能用onclick(这个)将第一个案例mecanism应用到第二个案例?

关于问题的更多细节:

第一种情况,因为我使用锚onclick,我可以得到动作源然后它的父.

第二种情况,另一方面,有div块和脚本块之后.它们在页面中呈现,因此没有单击事件.我需要个东西:

$(本).closest( 'DIV').HTML()

但它不起作用

Sha*_*ard 9

我猜你的意思是这样的?

<script type="text/javascript">
$(document).ready(function() {
   $("#MyLink").click(function() {
      alert($(this).closest('div').html());
   });
});
</script>
Run Code Online (Sandbox Code Playgroud)

这需要您添加id到链接.

如果您的意思是显示警报而不点击任何内容,您将需要解释您希望它显示的确切程度,这意味着响应什么事件?

编辑:如果你有多个元素,请使用class,例如<a class="MyLink" ...>然后有这样的代码:

$(document).ready(function() {
   $(".MyLink").click(function() {
      alert($(this).closest('div').html());
   });
});
Run Code Online (Sandbox Code Playgroud)

使用.而不是#将赋予该类的所有元素.