如何更改客户端javascript中文本的颜色?

Posted

技术标签:

【中文标题】如何更改客户端javascript中文本的颜色?【英文标题】:How do I change color of text in client side javascript? 【发布时间】:2021-12-23 14:44:17 【问题描述】:

我正在从输入文本区域向我的 ul 添加一个列表项。我如何根据它是否是回文来改变它的颜色?下面是我的代码的js文件。

function isPalindrome(text)
    return text == text.split('').reverse().join('');


const staticForm = document.getElementById('static-form');
let myUl = document.getElementById('list');
const textarea = document.getElementById('text');
staticForm.addEventListener('submit', (event) => 
    event.preventDefault();
    if (isPalindrome(text)==true) textarea.style.color='red';
    else textarea.style.color='blue';
    let li = document.createElement('li');
    li.innerhtml = textarea.value;
    myUl.appendChild(li);
    myForm.reset();
    textarea.focus();
    const result = isPalindrome(textarea)
    
);

HTML:

<main>
        <form id='static-form' method="POST" class="new-post-form">
            <textarea id='text' name='phrase'>
                Attempt here
            </textarea>
        
            <input class="sub-button" type="submit" name="submit" value="Submit" /> 
        </form>
        <ul id='list'></ul>
        
</main>

我知道写 textarea.style.color 是行不通的,最好的方法是什么?

【问题讨论】:

你在哪里写isPalindrome(text) text 来自哪里? isPalindrome(textarea) 中的 textarea 是什么?应该是isPalindrome(textarea.value) 吗?这些错误可以通过一些简单的调试来修复:(F12 打开开发工具,您可以在控制台选项卡中查看任何错误。) 你说得对,我应该把 text 改成 textarea,改了之后还是没有得到输出,不知道为什么 【参考方案1】:

function isPalindrome(text) 
        return text === text.split("").reverse().join("");
 

 const staticForm = document.getElementById("static-form");
 let myUl = document.getElementById("list");
 const textarea = document.getElementById("text");

 const submitBtn = document.getElementById("submit");
 submitBtn.addEventListener("click", (event) => 
        const text = document.getElementById("text").value;
        textarea.style.color = isPalindrome(text) ? "red" : "blue";
        let li = document.createElement("li");
        li.innerHTML = textarea.value;
        myUl.appendChild(li);
        textarea.focus();
        const result = isPalindrome(textarea);
      );
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Static Template</title>
  </head>
  <body>
    <main>
      <form id="static-form" method="POST" class="new-post-form">
        <textarea id="text" name="phrase">sample text</textarea
        >

        <input
          class="sub-button"
          id="submit"
          type="button"
          name="submit"
          value="Submit"
        />
      </form>
      <ul id="list"></ul>
    </main>

 
  </body>
</html>

function changeTextareaColor()
      const textarea = document.getElementById("textarea");
      if (textarea) 
        textarea.style.color = "red";
      
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Static Template</title>
  </head>
  <body>
    <textarea id="textarea">
      This is a static template, there is no bundler or bundling involved!
    </textarea>


    <button onclick="changeTextareaColor()">change color</button>
    <script>
      
    </script>
  </body>
</html>

我稍微修改了您的代码。我希望它会起作用。

【讨论】:

以上是关于如何更改客户端javascript中文本的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何将php数据设置为javascript日期并更改输入文本的颜色

在javascript中更改颜色文本

如何使用html和javascript中的输入更改多个id颜色

如何更改绑定到 Razor 页面上模型的特定文本的字体颜色?

javascript - 在两个颜色范围之间多次更改文本颜色

使用 CSS/JavaScript 更改 Kendo Chart 工具提示文本颜色