![](/img/trans.png)
[英]Finding a cell with a specific value and applying a class to a cell in the same row
[英]Finding a row with a cell with a specific value
我必须标记表中的所有行(然后更改代码以删除行)。
表结构如下:
<table class="table table-striped table-condensed" id="buckettable">
<thead>
...cut out
</thead>
<tbody>
<tr class="success">
<td><input class="fld-bucketno" type="checkbox" name="bucket" value="158bf61f-8f66-4dee-9ff6-b9d1f6d4b840" /></td>
<td class="text-right">
<a class="bucketNo" href="/Sim/Staging/1212">1212</a>
</td>
我感兴趣的是td中锚点的值-第二行。
我得到要删除的ID的JSON列表。 首先,我标记它们,然后更改代码以将其删除。 至少是这样。 注意我-我知道很多编程知识,但是Java语言对我来说是未知之地;)
到目前为止,我的代码是:
success: function (resp) {
var table = $('#buckettable').find('tbody')[0];
var length = resp.length;
for (var i = 0; i < length; i++) {
var bucketNo = resp[i];
var rows = table.children.length;
for (var j = 0; j < rows; j++) {
var row = table.children[j];
var bucket = row.find('.bucketNo').text();
if (bucket == bucketNo) {
alert(bucket);
}
}
}
$('#cleanup').modal('hide');
而且我无法过滤行。 我愿意接受任何其他明智的方法-希望它能教给我很多东西。
在上面的代码中,我设法获得了该行...但是find('。bucketNo')失败,并抛出一个异常,即对象#没有找到方法...。我觉得很有趣,因为我在较早的表单上使用了该方法。 指向文档的指针非常欢迎,尤其是除了答案之外。
如果有更好的方法可以告诉我。 有人告诉我,按ID进行搜索的速度更快(很明显),但是不知为何-我应该在每行上设置一个编码ID(bucket-xxx,xxx是数字)吗?
有一种更简单的方法。
var targetBucketNo = 1212;
$('#buckettable a.bucketNo')
.filter(function(item) {
return item.text() == targetBuvketNo;
})
.parent()
.remove();
详细解释。 以下代码将获取#buckettable表中具有bucketNo类的锚点。
$('#buckettable a.bucketNo')
筛选器将筛选具有目标存储桶编号的结果
.filter(function(item) {
return item.text() == targetBuvketNo;
})
删除将删除元素
.remove();
如果要添加类,可以将.remove()
替换为.addClass('your-class-name')
。 这会将其添加到td
元素中,因此您应该在addClass
之前添加.parent()
。
您正在访问本机Javascript children
,因此find()
不是函数。 但是,您可以通过使用jQuery过滤器方法跳过许多正在使用的本机函数:
var $aTag = $('#buckettable').find('tbody td a.bucketNo').filter(function() {
return $(this).text() == bucketNo
});
alert($aTag.text());
您还可以使用“ bucketNo”类循环所有链接,然后查看ID是否在您的数组中。 之后,获取包含的TR并将其删除或添加一个类或其他内容:
var resp = [2323,5656]
$('a.bucketNo').each(function() {
if( resp.indexOf( parseInt($(this).text()) ) != -1 )
$(this).closest('tr').addClass('del');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.