簡體   English   中英

查找具有特定值的單元格的行

[英]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');
});

http://jsfiddle.net/44cEt/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM