我对 jQuery 很陌生,在完成我想要的表的特定功能时遇到了一些麻烦。
我有一个动态排序的数据库列表,我希望能够在单击列标题时创建一个包含来自特定列的文本的文本区域。我从这个http://jsfiddle.net/4BwGG/3/使用的代码中有一些功能,但这里有一些我无法弄清楚的事情:
我使用标签中style="display: none"
的属性隐藏了表中的一些行<tr>
,当脚本解析所有内容时,这些隐藏行的信息也被包含在内。如何进行检查以便仅将显示的行复制到文本区域?
这是一行条目的样子:
<tr filtermatch="false" style="display: none;">
<td>< a href="http://example.edu">Tommy Trojan< /a>< /td>
< td>123-555-1231< /td>
< td>Statue Man< /td>
< td>[LTS1] [LTS2] [PM] [PM2] [TA1] [TA2] < /td>
< td>tommy@example.edu< /td>
< /tr>`
这是功能:
function SelectColumn(index, tableId) {
var columnText = 'You selected:\n\n';
var columnSelector = '#' + tableId + ' tbody > tr > td:nth-child(' + (index + 1) + ')';
var cells = $(columnSelector);
// clear existing selections
if (window.getSelection) { // all browsers, except IE before version 9
window.getSelection().removeAllRanges();
}
if (document.createRange) {
cells.each(function(i, cell) {
var rangeObj = document.createRange();
rangeObj.selectNodeContents(cell);
window.getSelection().addRange(rangeObj);
columnText = columnText + '\n' + rangeObj.toString();
});
}
else { // Internet Explorer before version 9
cells.each(function(i, cell) {
var rangeObj = document.body.createTextRange();
rangeObj.moveToElementText(cell);
rangeObj.select();
columnText = columnText + '\n' + rangeObj.toString();
});
}
alert(columnText);
}