0

I have table

        <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>

And i have this jQuery code

$(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>');
});

Yes, this code works, but how i can do it by id on my td elements?

Thanks and sorry for such silly question...

4

3 回答 3

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...
});
参考 .closest()

示例演示

于 2013-05-12T08:10:16.093 回答
0

你只是做$("td#id")or$("td#time")或 just$("#time")等等。

于 2013-05-12T08:04:16.190 回答
0

当您想通过 ID 获取元素时,您可以这样做

$('#id');

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

于 2013-05-12T08:05:09.863 回答