在jquery中了解哪个孩子被点击了标签

时间:2011-10-21 19:38:12

标签: jquery dom jquery-selectors

我有以下DOM结构,基于h4的点击我需要获取相应类窗口小部件的id并向服务器发出post请求。我对jQuery有点陌生,因此很挣扎。有人可以帮忙吗?

<section id="home-sidebar" class="sidebar">
  <div class="menu">

    <div class="widget" id="4">
      <div class="title">
        <h4>First Text</h4>
        <p>Do some stuff</p>
      </div>
    </div>
    ..................................
...............

    <div class="widget" id = "56">
      <div class="title">
        <h4>N-th Text</h4>
        <p>Do some stuff</p>
      </div>
    </div>
  </div>
</section>

我怎么知道在jQuery中点击了哪个h4标签?我如何获得小部件的相应“id”号码? (注意ID不是连续的,它们也可以是随机的)

4 个答案:

答案 0 :(得分:1)

您可以使用.parents()查找具有您想要获取的ID的DOM节点:

//bind a click handler to all h4 elements
$('h4').bind('click', function () {
    //find the id of the parent node that has the .widget class
    //since you are trying to get the id, you do not need to use the jQuery .attr() function which performs slower than the below code
    var id = $(this).parents('.widget')[0].id;
    $.get('path/to/server.file?id=' + id, function (data) {
       //this is the callback function for the server request
       alert('Server Response: ' + data);
    });
});

.parents()的文档:http://api.jquery.com/parents/

答案 1 :(得分:0)

如果你这样做了:

$('h4').click(....)

你可以这样做:

$('h4').click(function(){
    alert($(this).attr('id'))
})

答案 2 :(得分:0)

$(document).ready(function(){ 
    $(".widget").click(function(){
        var id = $(this).attr("id");  //gives id
    });
});

答案 3 :(得分:0)

$("h4").click(function(){  
    var  a=$(this).parent().parent().attr('id');  
    alert(a);  
})