检查单元格中的文本是否为粗体

时间:2012-06-04 07:41:51

标签: javascript html-table

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

细胞只能有文字。如果是粗体 - 它应包含标记<b>。例如:

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

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

3 个答案:

答案 0 :(得分:2)

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

您可以使用cell.firstChild获得第一个孩子。这为您提供了文本节点或<B>节点。您可以使用node.nodeType来检查这一点,对于DOM节点为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';
}

答案 1 :(得分:1)

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

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

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

var boldText = $("#td-id strong").html();
if (boldText != NULL) {
   // Text is bold
}

答案 2 :(得分:0)

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

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

但是,如果你只是通过TD { font-weight: bold; }这样的广义css使文字变为粗体,那么你就无法获得特定单元格的文本。