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 ответ

Решение

Вы можете сделать это с помощью 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.

Другие вопросы по тегам