此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)
这样的几个日志肯定有助于识别问题。