我有一个html表。有些细胞是粗体,有些是正常的。我如何检查某个单元格是否为粗体(例如i,j)并获取该单元格的文本而没有标记。
细胞只能有文字。如果是粗体 - 它应包含标记<b>
。例如:
<tr>
<td>
Not bold text
</td>
<td>
<b> Bold text </b>
</td>
</tr>
PS我不能使用class或id属性 PSS如果没有jQuery代码会更好,我们暂时不使用它
答案 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使文字变为粗体,那么你就无法获得特定单元格的文本。