javascript - 传递带参数的函数时未触发单击事件
问题描述
谁能告诉我为什么这个点击事件不会触发?似乎工作正常(除了打印到 HTML ,function
但我会回到那个)。
function longestWordFunc(stringArg) {
console.log(stringArg)
var stringSplit = stringArg.split(" ");
console.log(stringSplit)
var longestWord = 0;
for(var i = 0; i < stringSplit.length; i++){
if(stringSplit[i].length > longestWord){
longestWord = stringSplit[i].length;
}
longestWord = stringSplit[i];
};
console.log(longestWord)
console.log(longestWord.length)
document.getElementsByClassName("longestWord").innerHTML = longestWord;
document.getElementsByClassName("longestWordCount").innerHTML = longestWord.length;
};
let searchString = document.querySelector(".searchString").value;
console.log(searchString);
document.querySelector(".generate").addEventListener("click", longestWordFunc(searchString));
<input type="text" name="searchString" class="searchString">
<span class="longestWord"></span>
<span class="longestWordCount"></span>
<button class="generate">Generate</button>
先感谢您。
解决方案
您应该searchString
在.generate
. 除非,您searchString
会undefined
因为用户最初没有输入任何字符串。
function longestWordFunc(stringArg) {
console.log(stringArg)
var stringSplit = stringArg.split(" ");
console.log(stringSplit)
var longestWord = 0;
for(var i = 0; i < stringSplit.length; i++){
if(stringSplit[i].length > longestWord){
longestWord = stringSplit[i].length;
}
longestWord = stringSplit[i];
};
console.log(longestWord)
console.log(longestWord.length)
document.getElementsByClassName("longestWord").innerHTML = longestWord;
document.getElementsByClassName("longestWordCount").innerHTML = longestWord.length;
};
document.querySelector(".generate").addEventListener("click", () => {
let searchString = document.querySelector(".searchString").value;
longestWordFunc(searchString);
});
<input type="text" name="searchString" class="searchString">
<span class="longestWord"></span>
<span class="longestWordCount"></span>
<button class="generate">Generate</button>
推荐阅读
- angular - Angular:从组件中的指令调用方法
- javascript - JQuery - 表单仅在单击按钮时出现
- spring-boot - 如何在春季转义用于sql注入的输入字符串?
- rabbitmq - 在 RabbitMQ 中长按 ack 可以吗?
- python - 尝试在 RobotStudio 上打开工作站时出错
- javascript - 当我向 HTML 寻址时,它会导致属性错误
- terragrunt - 如何在亚特兰蒂斯的一个目录上运行多个工作流
- docker - 针对不同 CUDA 架构的 Pytorch 安装
- laravel - 注销 laravel 账号
- php - 如何检查复选框是否被选中php