1

我有一个 html 表格。有些单元格是粗体,有些是正常的。我如何检查某个单元格是否为粗体(例如 i,j)并获取该单元格的文本而没有 tag 。

单元格只能有文本。如果它是粗体 - 它应该包含 tag <b>。例如:

<tr>
<td>
Not bold text
</td>
<td>
<b> Bold text </b>
</td>
</tr>

PS 我不能使用 class 或 id 属性。
PSS 如果没有 jQuery 代码会更好,我们暂时不用

4

3 回答 3

2

请参阅此答案如何获取对单元格的引用:https ://stackoverflow.com/a/3052862/34088

你可以得到第一个孩子cell.firstChild。这为您提供了一个文本节点或一个<B>节点。您可以使用node.nodeTypeDOM 节点的 1 或文本节点的 3 来检查这一点。这使:

function isBold(table, rowIdx, columnIdx) {
    var row = table.rows[rowIdx];
    var cell = row.cells[columnIdx];
    var node = cell.firstChild;
    if( node.nodeType === 3 ) {
        return false;
    }

    return node.nodeName === 'b' || node.nodeName === 'B';
}
于 2012-06-04T12:40:24.903 回答
1

使用 css font-weight 属性来检测文本是否为粗体:

if ($("#td-id").css("font-weight") == "bold") {
  var boldText = $("#td-id").html();
  // Text is bold
}

如果不使用 css,表格单元格内容内必须有<strong>-tag(或-tag)。<b>您可以使用以下代码提取粗体文本:

var boldText = $("#td-id strong").html();
if (boldText != NULL) {
   // Text is bold
}
于 2012-06-04T07:55:30.247 回答
0

这完全取决于您的 HTML。如果您使用<b>or<strong>标记,那么您可以轻松地从这些单元格中获取文本:$('TD strong').text();

如果您通过 CSS 类使文本变为粗体,那么您需要 css 类:$('TD.classForBoldText').text();

但是,如果您刚刚通过通用 css 将文本设置为粗体,TD { font-weight: bold; }那么您将无法获取特定单元格的文本。

于 2012-06-04T07:55:18.680 回答