nodeValue和过滤后的字符?

时间:2012-07-20 22:17:12

标签: javascript html dom nodevalue

我正在尝试创建一个脚本来验证nodeValue是否在html文档中

var myVar= document.getElementsByTagName("b");
for (var i = 0; i < myVar.length; i++) {
  var pumpkin = myVar[i].firstChild;  
  if(pumpkin.nodeValue == "Some text")
  {
    alert("exists");
  }
}

如果我要查找的文字包含&nbsp;等过滤字符而不是空格,则无效。 当我在使用DOM Inspector时,那些字符不在那里(而是有正常的空格),但当我看到页面源时它们就是。

我试过

if(pumpkin.nodeValue == "Some text")

if(pumpkin.nodeValue == "Some&nbsp;text")

但都失败了...... 有人有想法吗?

(当我想要查找的文本在源代码中不包含这些字符时,它可以正常工作)。 提前谢谢

1 个答案:

答案 0 :(得分:0)

您可以在regular expression的帮助下执行此操作,因为&nbsp;的相应字符代码为160

var myVar= document.getElementsByTagName("b");
for (var i = 0; i < myVar.length; i++) {
    var str = myVar[i].firstChild.nodeValue;  
    var re = new RegExp(String.fromCharCode(160), "g");
    if(str.match(re)) alert("exists");
}

DEMO.