如何检查文本是否在网页中具有粗体

时间:2012-02-25 15:51:22

标签: javascript html dom

如果我的html页面有很多文字和一些有格式的单词。如果我使用

windows.find(text);

有助于在网页中查找文字。但是如何才能知道文档中搜索到的文本是否以粗体显示?

例如,如果我的页面HTML是:

 <body>
      Hello Techie, <b>I</b> am in bold.
 </body>

如果我使用window.find("I am"),它将与文字匹配。但我怎么知道“我是”是否大胆?

我希望问题很明确。如果您想要任何进一步的输入,请告诉我。

2 个答案:

答案 0 :(得分:4)

window.find(),在支持的情况下,将选择内容移动到找到的文本。在这种情况下,您可以使用document.queryCommandState()检查所选内容的粗体,无论粗​​体如何设置(CSS font-weight<b>或{ {1}}元素)。不幸的是,在非IE浏览器中,您必须暂时将文档置于设计模式以使其工作:

演示:http://jsfiddle.net/efN8P/

代码:

<strong>

答案 1 :(得分:3)

这有效,但我不确定跨浏览器的兼容性:http://jsfiddle.net/VALr3/1/。它检查<b>元素是否是所选元素的一部分。

window.find("I am");

var sel = window.getSelection(),
    frag = sel.rangeCount > 0 && sel.getRangeAt(0).cloneContents();

alert(frag && frag.querySelectorAll("b").length > 0);