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

时间:2011-02-08 10:39:42

标签: jquery

第一个案例

<div>
  <a href="#" onclick="doIt(this)">some job</a>
<div>

我能做到:

<script>
  function doIt(caller){
       alert($(caller).closest('div').html());
  }
</script>

第二种情况:

<div id="divId">
  ....
</div>

我做

<script>
  alert($("#divId").html());
</script>

如何在没有onclick(这个)的情况下将第一个案例机制应用于第二个案例?

有关问题的更多详细信息:

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

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

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

但它不起作用

4 个答案:

答案 0 :(得分:9)

我认为你的意思是这样的?

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

这需要您将id添加到链接。

如果您的意思是在没有点击任何内容的情况下显示警报,您必须解释您希望它显示的确切程度,这意味着响应什么事件?

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

$(document).ready(function() {
   $(".MyLink").click(function() {
      alert($(this).closest('div').html());
   });
});

使用.代替#将为该类提供所有元素。

答案 1 :(得分:2)

尝试:

 $("#divId").click(function() {doIt(this);});

将其放在documentReady上。

答案 2 :(得分:1)

$('#divId').click(function() { alert($(this).html()); });

答案 3 :(得分:1)

只需将其放入$(document).ready();然后在文档加载时执行。像这样:

$(document).ready(function(){
    alert($("#divId").html());
});

编辑(见评论):

$(document).ready(function(){
    $('.yourdivclass').each(function() {
        alert($(this).html());
    });
});