Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法为文本输入读取未定义的属性拆分_Javascript_Html_Css_Console - Fatal编程技术网

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

该函数是return
undefined
,基本上什么都不是,因为里面没有
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

该函数是return
undefined
,基本上什么都不是,因为里面没有
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中的作用域”阅读更多内容,因此