首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何单击按钮从textarea获取所有内容,运行一个函数,然后在新的div中显示最终值?

如何单击按钮从textarea获取所有内容,运行一个函数,然后在新的div中显示最终值?
EN

Stack Overflow用户
提问于 2021-05-11 10:59:17
回答 3查看 38关注 0票数 0

我还在学习阶段,你能给我一个解释的答案吗?

如果可能的话,如果你能在这里向我解释我做错了什么,然后告诉我更好的方法,我将不胜感激。

代码语言:javascript
复制
//ARROW FUNCTION
const reverseNumber = num => (num.toString().split("").reverse().join(""));



let textAreaEl = document.querySelector('#text-area');
let submitButtonEl = document.querySelector('#output-button');
let outputAreaEl = document.querySelector('#output');


submitButtonEl.addEventListener("click", () => {
  textAreaValue = reverseNumber(textAreaEl)
  outputAreaEl.innerHTML = textAreaValue.value;
});
代码语言:javascript
复制
<form action="">
  <label for="object" title="object">JavaScript function that returns a passed string with letters in alphabetical order</label>
  <textarea id="text-area" name="object-name" id="" cols="30" rows="5"></textarea>
  <input type="button" value="RETURN" id="return-value" />
  <div id="output"></div>
</form>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-11 11:08:30

首先,#output-button中没有元素。你得解决这个问题。

如果将元素本身传递给reverseNumber(),则应该将值传递给函数。

如果文本是纯文本(而不是htmlString),我还建议您使用innerTexttextContent而不是innerHTML

演示:

代码语言:javascript
复制
const reverseNumber = num => (num.toString().split("").reverse().join(""));

let textAreaEl = document.querySelector('#text-area');
let submitButtonEl = document.querySelector('#output-button');
let outputAreaEl = document.querySelector('#output');

submitButtonEl.addEventListener("click", () => {
    textAreaValue = reverseNumber(textAreaEl.value); //pass value here  
    outputAreaEl.textContent = textAreaValue; //no need to use value here
});
代码语言:javascript
复制
<form action="">
  <label for="object" title="object">JavaScript function that returns a passed string with letters in alphabetical order</label>
  <textarea id="text-area" name="object-name" id="" cols="30" rows="5"></textarea>
  <input type="button" value="RETURN" id="output-button"/>   <!--fix the id here-->
  <div id="output"></div>
</form>

票数 1
EN

Stack Overflow用户

发布于 2021-05-11 11:09:55

首先,textarea id是不正确的,因此querySelector返回的是未定义的,并且没有附加单击事件。我已经在html中更正了按钮id。

您需要使用textAreaEl.value查找textarea文本并将其传递给reverseNumber函数。

代码语言:javascript
复制
//ARROW FUNCTION
const reverseNumber = num => (num.toString().split("").reverse().join(""));



let textAreaEl = document.querySelector('#text-area');
let submitButtonEl = document.querySelector('#output-button');
let outputAreaEl = document.querySelector('#output');


submitButtonEl.addEventListener("click", () => {
    textAreaValue = reverseNumber(textAreaEl.value)  
    outputAreaEl.innerHTML=textAreaValue;
});
代码语言:javascript
复制
 <form action="">
        <label for="object" title="object">JavaScript function that reverses a number</label>
        <textarea id="text-area" name="object-name" id="" cols="30" rows="5"></textarea>
        <input type="button" value="RETURN" id="output-button"/>   
        <div id="output"></div>
    </form>

票数 1
EN

Stack Overflow用户

发布于 2021-05-11 11:12:42

你的剧本应该是这样的

代码语言:javascript
复制
const reverseNumber = num => (num.toString().split("").reverse().join(""));
console.log(reverseNumber(54321));

let textAreaEl = document.querySelector('#text-area');
let submitButtonEl = document.querySelector('#return-value');
let outputAreaEl = document.querySelector('#output');

submitButtonEl.addEventListener("click", () => {
    let textAreaValue = reverseNumber(textAreaEl.value);  
    outputAreaEl.innerHTML = textAreaValue;
});

首先,您的document.querySelector('#output-button')<input type="button" value="RETURN" id="return-value"/>不匹配。

第二,您必须使用变量声明关键字来获取textAreaEl.value

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67485394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档