我有桌子
<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>');
});
是的,此代码有效,但我如何id
在td
元素上执行此操作?
感谢并抱歉这个愚蠢的问题...
答案 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()
答案 1 :(得分:0)
您只需$("td#id")
或$("td#time")
或$("#time")
等。
答案 2 :(得分:0)
如果您想通过ID获取元素,可以执行
$('#id');
然后我看到你使用.parent()。parent()。如果我是你,我会使用最接近的('tr')。然后,javascript将搜索与您的条件匹配的最接近的父元素。你得到一些更干净的代码。