哪个jquery选择器这样做?

时间:2011-10-20 10:09:22

标签: javascript jquery

<div id="m101">
    <table class="tablec" width="80%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="#"><span class="name">My Name</span></a></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td><a href="#"><span class="clickme">clickme</span></a></td>
  </tr>
</table>
</div>

如果点击clickme,我应该使用哪个选择器来捕获“name”的内容?这些表中有多个具有相同的类,但周围的div是唯一的。每次名称都不同。

到目前为止,我一直在与父母,父母和最接近的职能部门进行实验。

 $(".clickme").click(function(){
    var name = $(this).closest('.name').text();
alert(name);
 });

5 个答案:

答案 0 :(得分:2)

这样的事情能做到吗?

$(".name", $(this).closest("div")).text()

这里的工作示例:http://jsfiddle.net/44re8/

答案 1 :(得分:1)

您无法使用.name选择closest(),因为它不是祖先。你需要选择一个共同的祖先,例如table,然后在树下工作到.name元素。

$(".clickme").click(function(){
  var table = $(this).closest("table");
  var name =  table.find('.name').text();
  alert(name);
 });

您可以使用

将其放在一行中
$(".clickme").click(function(){
  var name =  $(this).closest("table").find('.name').text();
  alert(name);
 });

答案 2 :(得分:1)

您可以遍历树,直到找到<table>

var name = $( this ).closest( 'table' ).find( '.name' ).text();

答案 3 :(得分:1)

这为我做了工作

function() {
    $(".clickme").click(
        function(e) {
            alert($(this).parents("div").find(".name").html());
        }
    );
}

答案 4 :(得分:0)

最简单的答案 -

$(document).ready(function(){
$('.clickme').click(function(){
    var getName = $('.name').text();
    alert(getName);
});
});