通过id获取父元素

时间:2013-05-12 08:00:32

标签: jquery

我有桌子

        <tr>
          <td id="id">2</td>
          <td id="type"><span class="label">snippets</span></td>
          <td id="name">all</td>
          <td id="time">None</td>
          <td id="status">None</td>
          <td id="actions"><i class="icon-refresh" id="refresh-parser"></i></td>
        </tr>

我有这个jQuery代码

$(document).on('click', '#refresh-parser', function(){
    var before_content = $($(this).parent());
    var parser_id = $('#refresh-parser').parent().parent().children("td:first");
    var parser_time = $('#refresh-parser').parent().parent().children("td")[3];

    //$($(this).parent()).html('<div class="loading"></div>');
});

是的,此代码有效,但我如何idtd元素上执行此操作?

感谢并抱歉这个愚蠢的问题...

3 个答案:

答案 0 :(得分:1)

Id在文档中应该是唯一的。所以你应该使用: -

$('#id'),$('#name') etc...

因此,要解决这个问题,因为看起来你的html中有重复的id,如果它们在文档中重复,则将id设为类名。如下所示。

        <tr>
          <td class="id">2</td>
          <td class="type"><span class="label">snippets</span></td>
          <td class="name">all</td>
          <td class="time">None</td>
          <td class="status">None</td>
          <td class="actions"><i class="icon-refresh" id="refresh-parser"></i></td>
        </tr>

并按如下方式访问: -

$(document).on('click', '#refresh-parser', function(){
     var id = $(this).closest('tr').find('.id').text();
     var name = $(this).closest('tr').find('.name').text();
     // and so on...
});
Refer .closest()

Sample Demo

答案 1 :(得分:0)

您只需$("td#id")$("td#time")$("#time")等。

答案 2 :(得分:0)

如果您想通过ID获取元素,可以执行

$('#id');

然后我看到你使用.parent()。parent()。如果我是你,我会使用最接近的('tr')。然后,javascript将搜索与您的条件匹配的最接近的父元素。你得到一些更干净的代码。