1

我有一张桌子,当用户点击一行时,它以黄色突出显示。我使用一个类来使用 CSS 设置颜色,如下所示:

.highlight {
    background-color: yellow; 
}

现在,当用户单击提交按钮时,我想获取所有突出显示的行,然后从该行获取特定列值,然后将它们放入数组中。我遗漏了一些东西,因为我的选择器没有在数组中放入任何行数据。

var arr = $('#tbl tr').filter(":has(.highlight)");

这是我在另一个函数中用来在用户单击它时从单行获取值的方法。下面的代码有效,但我需要对所有突出显示的行执行此操作。

$(this).find('#selectedRowItem').text()

我正在使用 jQuery 1.6.4。顺便一提。

此外,我正在考虑使用 data 函数来缓存它作为更好的选择,但选择了数组作为更简单的解决方案。

关于如何做到这一点的任何想法?

4

4 回答 4

2
var highlighted=$('body .highlight');

这样就可以了,然后您可以使用$.each循环遍历数组

于 2012-06-08T19:15:46.810 回答
1

詹姆斯,你不需要在你的选择器中加上“有”。因此,使用下面的代码,您的选择器将起作用

$('#tbl tr').filter(".highlight")

看看这个小提琴:http: //jsfiddle.net/estevao_lucas/kDSmS/。我希望这对你有帮助。

于 2012-06-08T19:26:29.667 回答
1
var $highlighted = $('#tbl tr.highlight');
于 2012-06-08T19:18:43.593 回答
1

尝试这个:

var $highlighted = $("#tbl .highlight [id=selectedRowItem]");
var arr = $.map( $highlighted, function (el, i) {
    return $highlighted.eq(i).text();
});

但是,我强烈建议您将 selectedRowItem ID 更改为类名,ID 必须是唯一的。

于 2012-06-08T19:19:33.813 回答