сравнивая значение innerHTML со строковой переменной в JavaScript - PullRequest
0 голосов
/ 06 декабря 2010
function Open() {

  var cc = document.getElementById('FName');

  if ('Newfile.rtf' == cc.innerHTML) 
  {
     alert("New File");
  } //close If NewFile.rtf
  else {
     alert("Not new file");
  }
}//close Open()   

Здесь у меня есть строка "NewFile.rtf" в элементе с id = "FName" на странице. Когда имя FName содержит «Newfile.rtf», оно все равно переходит к другой части функции вместо перехода к части if. Я пробовал разные способы написать оператор сравнения в условии if, но не повезло. Цените помощь, если кто-то может помочь выяснить это.

Спасибо.

Ответы [ 4 ]

1 голос
/ 06 декабря 2010

Самое простое объяснение состоит в том, что ваш вызов cc.innerHTML не возвращает то, что вы думаете, он возвращает. Почему бы вам не console.log или отладки.

добавить что-то вроде

var innerhtml = cc.innerHTML;
console.log("innerHTML = " + innerhtml) // wont work in IE.

перед оператором if.

0 голосов
/ 23 мая 2019

Используйте innerText, чтобы получить это

function Open() {

    var cc = document.getElementById('FName');

    if ('Newfile.rtf' == cc.innerText)
    {
        alert("New File");
    } //close If NewFile.rtf
    else {
        //enter code here
        alert("Not new file");
    }
}
0 голосов
/ 06 декабря 2010

Попробуйте использовать регулярные выражения , чтобы найти ваше имя файла, также проверьте, не находится ли искомый текст в другом элементе DOM, выделите левый и правый пробелы, вы должны использовать Google Chrome для отладки кода Javascript:

var html = document.getElementById('FName').innerHTML; 
if( html.search("Newfile.rtf") != -1) { /*found*/ }
else { /*not found*/ }
0 голосов
/ 06 декабря 2010

а какой тип у этого элемента?если речь идет о типе ввода текста .. вы не можете использовать innerHTML, но вы будете использовать значение тогда.

...