Javascript 无法为文本输入读取未定义的属性拆分
我试图构建一个文本到摩尔斯电码转换器,当我试图获取一个字符串的输入值并将其转换为一个字母数组时,我得到了这个错误Javascript 无法为文本输入读取未定义的属性拆分,javascript,html,css,console,Javascript,Html,Css,Console,我试图构建一个文本到摩尔斯电码转换器,当我试图获取一个字符串的输入值并将其转换为一个字母数组时,我得到了这个错误 var inputValue=getInputValue(); var inputValueLetters=inputValue.split(); 函数getInputValue(){ //选择输入元素并获取其值 var inputVal=document.querySelector(“#myInput”).value; //显示值 控制台日志(inputVal); }; 获取J
var inputValue=getInputValue();
var inputValueLetters=inputValue.split();
函数getInputValue(){
//选择输入元素并获取其值
var inputVal=document.querySelector(“#myInput”).value;
//显示值
控制台日志(inputVal);
};代码>
获取JavaScript中的文本输入字段值
莫尔斯电码:将纯文本翻译成莫尔斯电码
获得价值
您在脚本的第一行调用了函数“getInputValue”
var inputValue = getInputValue();
此函数返回undefined
,然后您试图调用.split
未定义的方法并得到该错误
如果删除脚本的前两行,则不会出现错误。
如果您需要一些额外的逻辑,而不仅仅是将输入值打印到控制台,那么您需要在读取输入值后将此逻辑放入函数getInputValue
。比如:
function getInputValue(){
// Selecting the input element and get its value
var inputVal = document.querySelector("#myInput").value;
// Displaying the value
console.log(inputVal);
const letters = inputVal.split('');
console.log(letters);
};
另外,检查我是否在split函数中使用了空字符串参数来按字母分割值。如果您不这样做,您的数组将只有一个元素,即在脚本的第一行调用函数“getInputValue”的整个输入值
var inputValue = getInputValue();
此函数返回undefined
,然后您试图调用.split
未定义的方法并得到该错误
如果删除脚本的前两行,则不会出现错误。
如果您需要一些额外的逻辑,而不仅仅是将输入值打印到控制台,那么您需要在读取输入值后将此逻辑放入函数getInputValue
。比如:
function getInputValue(){
// Selecting the input element and get its value
var inputVal = document.querySelector("#myInput").value;
// Displaying the value
console.log(inputVal);
const letters = inputVal.split('');
console.log(letters);
};
另外,检查我是否在split函数中使用了空字符串参数来按字母分割值。如果您不这样做,您将有一个只有一个元素的数组,即整个输入值此行:
var inputValue = getInputValue();
正在为函数getInputValue()赋值代码>返回变量inputValue
该函数是returnundefined
,基本上什么都不是,因为里面没有return
语句,所以第二行变成这样:
var inputValueLetters = undefined.split();
您得到的无法读取未定义“
的属性“split”的错误非常清楚未定义
是无
,并且无
具有无
,因此您如何期望无
具有split()
您只需要在单击按钮时获取输入值,然后对该值调用split()
此外,如果要将文本拆分为一个字母数组,则需要告诉拆分函数,它希望通过哪个字符将空格
或正斜杠(/)
等拆分
在我们的例子中,它什么都不是,所以我们传递一个空字符串“”
函数getInputValue(){
//选择输入元素并获取其值
var inputValue=document.querySelector(“#myInput”).value;
var inputValueLetters=inputValue.split(“”);
//显示值
console.log(inputValueLetters);
};
Morsi:将纯文本翻译成摩尔斯电码
获取值
此行:
var inputValue = getInputValue();
正在赋值函数getInputValue();
返回变量inputValue
该函数是returnundefined
,基本上什么都不是,因为里面没有return
语句,所以第二行变成这样:
var inputValueLetters = undefined.split();
您得到的无法读取未定义“
的属性“split”的错误非常清楚未定义
是无
,并且无
具有无
,因此您如何期望无
具有split()
您只需要在单击按钮时获取输入值,然后对该值调用split()
此外,如果要将文本拆分为一个字母数组,则需要告诉拆分函数,它希望通过哪个字符将空格
或正斜杠(/)
等拆分
在我们的例子中,它什么都不是,所以我们传递一个空字符串“”
函数getInputValue(){
//选择输入元素并获取其值
var inputValue=document.querySelector(“#myInput”).value;
var inputValueLetters=inputValue.split(“”);
//显示值
console.log(inputValueLetters);
};代码>
Morsi:将纯文本翻译成摩尔斯电码
获取值
您必须使用.split(“”)
const hello='hello'
console.log(hello.split())
console.log(hello.split(“”))
您必须使用.split(“”)
const hello='hello'
console.log(hello.split())
console.log(hello.split(“”))
那么,由于inputVal和字母未在函数外部定义,我将使用什么来操作函数外部的结果呢?如果需要为不同的getInputValue调用共享一些变量或与其他函数共享结果,则需要将变量移动到外部范围(在这种情况下,在全局作用域中),您可以将变量置于外部,并在函数中写入值,如。和函数中存储变量,这些变量在外部不需要。Likelet字母;/*在首次赋值之前不带任何值;*/function getInputValue(){/*在这个函数中只有inputVal中有值,每次调用都会不同*/const inputVal=document.querySelector(“#myInput”).value;/*我们没有任何var、let、const特殊词,所以我们使用外部变量*/lets=inputVal.split(“”)};函数doather(){/*可以有内部变量*/const a=3;/*可以访问外部变量*/if(letters&&letters.length){console.log(letters.length==a)};@Garberchov您可以通过请求“javascript中的作用域”阅读更多内容,因此