我试图在类似于这个表的特定行之后追加一个字符串myoutput:
<table>
<tr data-my_id='1'> <td> content </td> </tr>
<tr data-my_id='2' data-my_other_id='1' > <td> content </td> </tr>
<tr data-my_id='3' data-my_other_id='2' > <td> content </td> </tr>
</table>
所以我想说我想在data-my_other_id='2'
的tr之后追加我的输出字符串
(请注意,在我的代码中,my_other_id = 2
已经存在)
我正在努力实现这一目标:
var want = $("tr").find("[data-my_other_id='" + my_other_id + "']").index();
找到索引后,我想将输出strhing追加到这一行......
$(want).insertAfter(...?);
另外......每当我做的时候我都注意到了
alert( want = $("tr").find("[data-my_other_id='" + my_other_id + "']").length)
我得到0 ......
请帮助我,如果我的问题不够明确,请告诉我,以便我能更好地解释。
答案 0 :(得分:15)
我假设你想要更新内容而不是追加,但它并没有真正改变任何东西。我不认为你想以这种方式使用find()。尝试类似:
var $row = $('tr[data-my_other_id="' + id + '"]');
// should be the index of the tr in the <table>
// this may not be a good idea though - what if you add a header row later?
var index = row.index() + 1; // if you want 1-based indices
$row.find("td").text("I am row #" + index);
答案 1 :(得分:2)
这是因为找不到兄弟姐妹,只有孩子。尝试将搜索附加到表格。
HTML:
<table>
<tr data-my_id='1'> <td> content </td> </tr>
<tr data-my_id='2' data-my_other_id='1' > <td> content </td> </tr>
<tr data-my_id='3' data-my_other_id='2' > <td> content </td> </tr>
</table>
JS:
var my_other_id = 2;
alert( $("table").find("[data-my_other_id='" + my_other_id + "']").length);
答案 2 :(得分:2)
您不需要使用find方法,因为数据属性在tr本身上。你使用索引也行不通。请尝试以下方法。
$("tr[data-my_other_id='" + my_other_id + "']").insertAfter(...?);
答案 3 :(得分:1)
find
寻找后代。 TR
不能成为自己的后代。
尝试使用filter()
$("tr").filter("[data-my_other_id='" + my_other_id + "']").index();
答案 4 :(得分:0)
在特定表中查找以便更快,您可以使用此方法。
JS:
$('any-button').click(function(){
var id = 23;
var $row = $('.your-class tbody tr[data-id="' + id + '"]');
$row.remove();
});
HTML
<table class="table table-striped your-class">
<thead>
<tr>...<tr/>
</thead>
<tbody>
<tr data-id="23">Some text</tr>
<tr data-id="43">Some text</tr>
<tr data-id="43">Some text</tr>
</tbody>
</table>