我正在编写一个 javascript 代码来从用户那里获取两个输入,并检查句子中是否存在字母。但是 if 块没有被执行



此JavaScript代码通过用户输入scen接受两个输入,通过HTML接受letter。我希望这个代码能够检查句子是否包含字母,如果是,那么句子应该在字母的第一次共同保险之后打印,但这个代码不起作用。我每次都得到0作为输出。

function myFunction(){

var scen = document.getElementById('scen').innerText;
var letter = document.getElementById('letter').innerText;
let err = "No such letter found"
let result = scen.indexOf(letter);
var len = scen.length;

if(result>=0)
{
document.getElementById("demo").innerHTML = result;
document.getElementById("demo2").innerHTML = len;
document.getElementById("demo3").innerHTML = scen.substring(result+1);
}

else{
document.getElementById("demo3").innerHTML = err;
}

}
<!DOCTYPE html>
<html>
<body>

<p>Find a letter:</p>
<form id="chk" method="post">
<label for="scen">Enter a sentence</label>
<input type="text" name="scen" id="scen" placeholder="Enter a scentence"><br><br>
<label for="letter">Enter the letter you want to find</label>
<input type="text" name="letter" id="letter" placeholder="Enter a letter" min="1">
<br>
<button type="button" onClick="myFunction()">Check</button>
</form>

<p id="demo"></p>
<p id="demo2"></p>
<p id="demo3"></p>
</body>
</html>

尝试用替换您的线路

var letter = document.getElementById('letter').value;

id为letter的元素是一个Input,因此要获得用户在中键入的字母,需要使用value属性

此外,我建议尝试调试该程序。在这种特殊情况下,像console.log("Letter value is: ", letter)这样的几个日志肯定有助于识别问题。